部分字段已经加了索引。
已经累计了8个月的数据了,今天把前面的数据都清掉了(用sql的delete语句删掉的),只保留了后三个月的数据,但是貌似网页检索速度没啥变化,为什么??有何解决办法??
拜托各位了,解决问题后追加翻倍分数!!!
注:页面只显示几个数值,这些是调用存储过程计算出来的。存储过程检索当天的数据做一些计算,然后返回给页面。
我只是用 mysql-front 软件,把一些用到的字段设置成了索引,并没有建立联合索引。联合索引与单独的为某列设置索引有啥优劣???
还望赐教,谢谢!
页面显示的只是计算结果,只是几个数值,通过存储过程计算得到的结果,然后显示在页面上。
现在数据量越来越大了,问题就凸显了。
通过删除老旧数据,只保留了最近两个月的,居然没效果,非常奇怪,你认为是为什么呢?
好像单独的索引的话,只会用到单一的索引;而一个表上有多个单一索引的话,也只会选取其中最有效果的一个;而联合索引的话,可以更加精确。
比如:
select * from factdata where user='a' and module='b' and dtime between '2012-11-01 00:10:00' and '2012-11-01 00:11:10';
假如只有一个user的索引的话,可能索引之后的记录数还是很多;但是user,module,dtime的组合索引的话,查找的结果会更少;当然要试你的查询情况而定。
另外你还需要确定是你的查询慢,还是你的存储过程慢,有可能你只保留最近两个月的数据已经比较快了,但是因为你的存储过程慢,所以实际还是比较慢。你可以将存储过程里面的查询单独拿出来跑一下看看花费的时间。
页面显示的只是计算结果,只是几个数值,通过存储过程计算得到的结果,然后显示在页面上,所以不存在分页显示的问题。
刚开始的时候这个问题不突出,现在数据量越来越大了,问题就凸显了。
通过删除老旧数据,只保留了最近两个月的,居然没效果,非常奇怪,你认为是为什么呢?
PLSQL里面 统计写的有问题吧,不可能会有那么大延迟,几千万数据量 也不是非常大。
方便的话把你存储过程里面统计的发出来看看,做统计 就更不可能 反应慢了
代码太长,请查私信,谢谢!
追答我看了 代码,没有看出问题,问题应该不是在存储过程上面,恕无能为力了
追问还是得感谢你,我继续等待有人来解决问题
先谢谢了!
页面显示的只是计算结果,只是几个数值,通过存储过程计算得到的结果,然后显示在页面上。
现在数据量越来越大了,问题就凸显了。
通过删除老旧数据,只保留了最近两个月的,居然没效果,非常奇怪,你认为是为什么呢?