大数据量数据库表的设计技巧
即使是非常简单的数据库应用系统,如果其数据量增长到一定程度,也会引发一系列问题。如果在设计数据库的时候就提前考虑这些问题,就可以避免系统反应慢而引起的用户抱怨。
提示1:尽量不要用代码。比如性别领域的通行做法:1代表男性,0代表女性。这意味着每个查询都需要一个关联的代码表。
技巧2:历史数据中的所有字段都不应该依赖于业务表。比如保存打印好的发票,不仅要保存公司代码,还要保存公司名称。
技巧3:使用中间表。例如,员工的工资可以保存在一个中间表中,当员工的某个薪资项目发生变化时,中间表中的数据可以相应更新。
技巧4:使用统计学。需要经常使用的统计数据可以在生成后保存在专门的表格中。
技巧五:批量保存历史数据。历史数据可以分段保存。例如,2003年的历史数据保存在2003表名中,而2004年的历史数据保存在2004表名中。
技巧6:将不常用的数据从业务表移到历史表中。例如,当员工离开公司时,其员工档案表中的信息应移动到员工档案表中。
1,经常查询和不经常使用的分开几个表,也就是横向分段。
2.把不同类型分成几个表,垂直划分。
3.常见连接的索引
4.在服务器上放几个硬盘,把数据、日志、索引放在不同的磁盘上,可以提高IO吞吐量。
5.使用优化器来优化您的查询。
6.考虑冗余,冗余可以减少连接。
7.考虑建立统计表,即实时生成总表,避免每次查询都要统计。
8.用极端数据检验数据。
速度,影响它的因素太多了,数据量越大越明显。
1,存储将硬盘划分为NTFS格式,NTFS比FAT32更快,并且根据你的数据文件大小,可以使用1G以上的多数据库文件,这样访问负载可以分布到多个物理硬盘或者磁盘阵列上。
2.tempdbtempdb也应该放在单独的物理硬盘或磁盘阵列上。建议放在RAID0上,这样性能最高。不要为它自动增长设置最大值。
3.日志文件日志文件也应该与不同硬盘或磁盘阵列上的数据文件分开,这样也可以提高硬盘的I/O性能。
4.分区视图是在集群服务器上水平划分数据。它适用于大规模OLTP和SQL集群,如果您的数据库不是特别需要访问,则不建议使用它。
5、聚簇索引你的表必须有聚簇索引。使用聚集索引查询时,块查询速度最快。如果使用between,它应该是物理上连续的。你应该设法减少它的更新,因为它会使它在物理上不连续。
6.非聚集索引非聚集索引与物理顺序无关。在设计它们的时候,一定要有高度的选择性,这样可以提高查询速度。但是在更新表的时候,这些非聚集索引会影响速度,占用空间大。如果你愿意用空间和改装时间换取速度,可以考虑。
7.索引视图如果在视图上建立了索引,就会存储视图的结果集,这样可以提高特定查询的性能,但也会严重降低update语句的性能,update语句一般用在数据相对稳定的数据仓库中。
8.维护索引。建立索引后,定期维护它是非常重要的。使用dbccshowcontig观察页面密度、扫描密度等。,使用dbccindexdefrag及时整理表或视图的索引,必要时使用dbccdbreindex重建索引,可以得到很好的效果。
无论使用多少个表——1、2和3——都可以提高一定的性能。你必须做5,6和8点。至于4和7分,看你的需求,我个人不建议。