日期:2014-05-17  浏览次数:20405 次

同一台服务器上将表分成多个数据库中存放性能有没有提升
 因我的数据表数据量比较大,现有记录4000W

  我想将这个表分成4个数据库存放,db0,db1,db2,db3  

  查询记录的时候 我使用union 将几个表中查到的结果汇总在一起,


   这样是否会比以前在同一表中存放查询速度变快呢  
------解决方案--------------------
个人建议:90%(我不敢说绝对)的情况下在同一个库快的多,因为很多统计信息可以共享,而跨库甚至跨服务器,有很大的开销。哪怕你把4个表存在一个库都比存在多个库快。当然,4000万算不了什么,设计好的话2000都很快,别说使用05、08的新特性。关注设计,优化查询和索引,这才是根本的出路。

分开库,SQLServer要先检验权限,然后再把多个库的统计信息读出来分析,然后组合查询,这些都会有很大的损耗。
------解决方案--------------------
同意1楼的意建
------解决方案--------------------
如果数据不是永久保存的话,建议把数据量多的一些表过一段时间改成另外的名字,比如按季度:tabe0,tabe1,tabe2,tabe3等,放在同一个库中,不断轮换,抛弃不用的数据,这样可能会减少记录数,提高查询速度,仅供参考。
------解决方案--------------------
分开存放,操作不方便.效率也会下降.

------解决方案--------------------
可以分段,但得根据实际情况,对数据查询分类入库,直接用union是没有效率的
------解决方案--------------------
不要分库

同一个大表改为分区表就好很多了
同一个库,数据文件可以多个,它们分布到不同磁盘,也能带来性能提高