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

因为数量大而分表会提高查询效率吗?
一张表因为数据量太大,所以想分表,但都是热数据,随时可能会查,这样的情况下,分表会提高查询效率吗?谢谢各位老师。

------解决方案--------------------
SQL SERVER的表分区功能是为了将一个大表(表中含有非常多条数据)的数据根据某条件(仅限该表的主键)拆分成多个文件存放,以提高查询数据时的效率。
------解决方案--------------------
查詢數據量小當然比數據量大快,想查詢分區表的數據可以使用動態語句,拼語句查詢。
------解决方案--------------------
99%的情况是设计不合理导致性能差,分表只会增加开发、维护或管理麻烦。。
------解决方案--------------------
分区可以减轻情况,但是,有很多实际应用中,分区的部分查询反而更慢,所以你要先看看你的查询语句,检查问题在哪里,也可以找个测试环境先试一下,这个动作比较大,所以不应该直接操作。
------解决方案--------------------
根据表中不同内容分表,在加一个原表视图,根据不同查询调用不同表,一定要加索引
------解决方案--------------------
楼主,分区不一定会增快效率,微软也曾经培训说过

一个表,分10个区,不代表会提高10倍的效率,有可能只有2倍左右,而分区主要被应用的目的是快速数据归档。

所以楼主如果想考虑分区,不如先试试数据库归档后的效果,减轻基表数据量可以从根本提高围绕此表的全部语句。
而分区只能应用在where + 分区列的基础上,有一定局限性,而且性能不一定改善很大~