大数据量系统的数据库结构设计

一、把你表中常常查询的和不经常使用的分开几个表,也就是横向切分数据库

二、把不一样类型的分红几个表,纵向切分服务器

三、经常使用联接的建索引性能

四、服务器放几个硬盘,把数据、日志、索引分盘存放,这样能够提升IO吞吐率测试

五、用优化器,优化你的查询大数据

六、考虑冗余,这样能够减小链接优化

七、能够考虑创建统计表,就是实时生成总计表,这样能够避免每次查询都统计一次设计

八、用极量数据测试一下 数据仓库解决的是数据挖掘,共享,和大数据量存储有什么根本关系?日志

mrzxc 等说的好,考虑你的系统,注意负载平衡,查询优化,25 万并不大,能够建一个表,而后按mrzxc 的3 4 5 7 优化。 速度,影响它的因数太多了,且数据量越大越明显。索引

一、存储 将硬盘分红NTFS格式,NTFS比FAT32快,并看你的数据文件大小,1G以上你能够采用多数据库文件,这样能够将存取负载分散到多个物理硬盘或磁盘阵列上。数据挖掘

二、tempdb tempdb也应该被单独的物理硬盘或磁盘阵列上,建议放在RAID 0上,这样它的性能最高,不要对它设置最大值让它自动增加

三、日志文件 日志文件也应该和数据文件分开在不一样的理硬盘或磁盘阵列上,这样也能够提升硬盘I/O性能。

四、分区视图 就是将你的数据水平分割在集群服务器上,它适合大规模OLTP,SQL群集上,若是你数据库不是访问特别大不建议使用。

五、簇索引 你的表必定有个簇索引,在使用簇索引查询的时候,区块查询是最快的,如用between,应为他是物理连续的,你应该尽可能减小对它的updaet,应为这可使它物理不连续。

六、非簇索引 非簇索引与物理顺序无关,设计它时必须有高度的可选择性,能够提升查询速度,但对表update的时候这些非簇索引会影响速度,且占用空间大,若是你愿意用空间和修改时间换取速度能够考虑。

七、索引视图 若是在视图上创建索引,那视图的结果集就会被存储起来,对与特定的查询性能能够提升不少,但一样对update语句时它也会严重减低性能,通常用在数据相对稳定的数据仓库中。

八、维护索引 你在将索引建好后,按期维护是很重要的,用dbcc showcontig来观察页密度、扫描密度等等,及时用dbcc indexdefrag来整理表或视图的索引,在必要的时候用dbcc dbreindex来重建索引能够受到良好的效果。 不论你是用几个表一、二、3点均可以提升必定的性能,五、六、8点你是必须作的,至于四、7点看你的需求,我我的是不建议的。

相关文章
相关标签/搜索