添加索引后新数据查询速度慢,老数据速度快什么原因? ...
2013-03-18 12:54
375 查看
有没有遇到这样的问题:
在数据库里有出入库信息表InOutInfo,入库日期Indate,出库日期:OutDate,数据表约有100万条数据,之前按入库日期或出库日期查询时,查询速度越来越慢,后来在入库日期与出库日期建立索引,速度有很大改善。但是,只是对老数据有效,对新添加的数据,查询速度比之前还要慢,请问是什么原因?
比如今天是6月13日,我在这两个字段建立索引后,那查询今天的入库,过去某一天直到今天的入库,或是过去某一天的入库数据,查询速度都很快,1秒内。但到了明天,6月14日,入库表里有了新数据,我再查询14日的入库,或查询过去某一天直到14日的,速度都非常慢,几乎查不出,查询13日的,或者是过去某一天直到13日的,都很快。只有我在表里删除在Indate上建立的索引,重新再建立索引,速度又很快了,这到底是什么问题?请各位高手指点迷津!
这种情况有可能是你的统计信息更新不及时,使得你的索引虽然建立了,但是优化器没有“察觉”。以为没有建索引。优化器使用索引时,是需要一些统计信息作为依据的。所以合理地更新统计信息是很有用。可以每天晚上定一个作业维护统计信息,维护计划就有这个功能。并且最好做一个作业2、3天重建一下索引。
在数据库里有出入库信息表InOutInfo,入库日期Indate,出库日期:OutDate,数据表约有100万条数据,之前按入库日期或出库日期查询时,查询速度越来越慢,后来在入库日期与出库日期建立索引,速度有很大改善。但是,只是对老数据有效,对新添加的数据,查询速度比之前还要慢,请问是什么原因?
比如今天是6月13日,我在这两个字段建立索引后,那查询今天的入库,过去某一天直到今天的入库,或是过去某一天的入库数据,查询速度都很快,1秒内。但到了明天,6月14日,入库表里有了新数据,我再查询14日的入库,或查询过去某一天直到14日的,速度都非常慢,几乎查不出,查询13日的,或者是过去某一天直到13日的,都很快。只有我在表里删除在Indate上建立的索引,重新再建立索引,速度又很快了,这到底是什么问题?请各位高手指点迷津!
这种情况有可能是你的统计信息更新不及时,使得你的索引虽然建立了,但是优化器没有“察觉”。以为没有建索引。优化器使用索引时,是需要一些统计信息作为依据的。所以合理地更新统计信息是很有用。可以每天晚上定一个作业维护统计信息,维护计划就有这个功能。并且最好做一个作业2、3天重建一下索引。
相关文章推荐
- mysql千万级数据量根据(索引)优化查询速度
- sqlite数据查询速度慢的可能原因
- mysql千万级数据量根据索引优化查询速度
- mongodb查询速度慢是什么原因?
- pb中sql语句用to_char查询出来数据,居然无法检索出数据,oracle数据库,这是什么原因?
- mysql百万级数据量根据索引优化查询速度
- 同一个表中查询不同的数据,执行时间相差很远,是什么原因?
- Solr 千万级大数据索引查询导致服务器崩溃的原因和解决
- mongodb查询速度慢是什么原因?
- mongodb查询速度慢是什么原因?
- 综合告警优化策略1-查询速度优化(表格没有添加索引)
- mysql千万级数据量根据索引优化查询速度
- mysql千万级数据量根据索引优化查询速度
- mongodb nosql 大数据提高查询速度-索引
- mysql千万级数据量根据索引优化查询速度
- jQuery查询数据返回object和字符串影响原因是什么
- jQuery查询数据返回object和字符串影响原因是什么
- MySQL 千万 级数据量根据(索引)优化 查询 速度
- php bug查询数据:数据库请求数据,关联数组会自动添加索引 重复一遍数据
- 教你用plsql建立索引加快查询oracle数据的速度