当前位置: 技术问答>java相关
请问:如何提高查询的效率和优化数据库
来源: 互联网 发布时间:2015-03-29
本文导语: 面对已有几百万条的数据量,并且每年以30万条数据递增。 对于这样的一张表,如何提高查询速度。 使用的是oracle数据库。 | 同意bloodyyy()的说法。 我觉得应该把大表拆成小表,做数据的分类...
面对已有几百万条的数据量,并且每年以30万条数据递增。
对于这样的一张表,如何提高查询速度。
使用的是oracle数据库。
对于这样的一张表,如何提高查询速度。
使用的是oracle数据库。
|
同意bloodyyy()的说法。
我觉得应该把大表拆成小表,做数据的分类细化。
这样把定位一条记录的工作分成先定表、再定记录,虽然逻辑上复杂了一些,但效率上应该高一些。
比如按月拆,即一个月新建一张表,查询的时候先根据查询条件中的月份信息找出应查的表名(按月命名),然后对涉及到的表进行查询。当然这样的话如果涉及的月份比较多或者没有时间信息则需要进行多表的查询,然后还要自己做一些汇总工作。不过在进行多表查询的时候可以开多线程,这样总的效率很可能还是要高过不拆分的情况。
——以上方案,未经验证,仅供参考:)
我觉得应该把大表拆成小表,做数据的分类细化。
这样把定位一条记录的工作分成先定表、再定记录,虽然逻辑上复杂了一些,但效率上应该高一些。
比如按月拆,即一个月新建一张表,查询的时候先根据查询条件中的月份信息找出应查的表名(按月命名),然后对涉及到的表进行查询。当然这样的话如果涉及的月份比较多或者没有时间信息则需要进行多表的查询,然后还要自己做一些汇总工作。不过在进行多表查询的时候可以开多线程,这样总的效率很可能还是要高过不拆分的情况。
——以上方案,未经验证,仅供参考:)
|
现在的数据库,没有上亿条的话,没有必要拆表的!我做过测试,见了索引的话,查询100万条和10万条几乎没有任何速度的区别!
|
to ycats(加菲猫):
你测的是什么数据库?我们试过(实际上是发现过)在SQL Server 7.0里一个月和三个月的数据的查询还是差别相当大的。另外,就算差别不大,绝对记录数多到百万级的时候查询速度都是难以接受的,一张月统计报表要半个多小时才能出来:(
你测的是什么数据库?我们试过(实际上是发现过)在SQL Server 7.0里一个月和三个月的数据的查询还是差别相当大的。另外,就算差别不大,绝对记录数多到百万级的时候查询速度都是难以接受的,一张月统计报表要半个多小时才能出来:(
|
不(少)用子查询,见必要得索引