[问题] 千万笔资料中找出max值

楼主: g66932007 (孤单的人)   2014-04-03 22:24:05
最近遇到的问题
想上来问问看看有没有人有更好的解法
就是 有一个table(别的部门的),
至于总笔数未知(多到sql都跑不动)
新的案子有个字段要显示各个产品某数值历年来的最大值,
由于下
select max(column) from table
where productName='AAA'
根本跑不动= =
我的想法是
加个时间条件(每半年)
select max(column) from table
where productName='AAA'
and createTime....
也就不断以每半年去捞最大值的方式去比较,直到比出真正的最大值
这样以后新进来的产品也只要跟真正的最大值去比即可
full scan找出真正最大值的方式也只要做一次而已
有人有更好的办法吗?
作者: ychsutw   2014-04-04 00:43:00
加index吧
楼主: g66932007 (孤单的人)   2014-04-04 15:53:00
当然有加阿 有dba负责
作者: kevin888 (小豪)   2014-04-04 19:41:00
一次搜寻10万就好了,硬件负担轻点
作者: m339606 (mize)   2014-04-04 19:55:00
下数值条件先把范围缩小如何?例如1000以上应该至少知道数值范围大概是多少吧?从有可能的最大数值试直到数量减少到很少的时候再加max下去?
作者: rex1224   2014-04-05 00:50:00
切partiontable
楼主: g66932007 (孤单的人)   2014-04-05 23:47:00
我也想切阿 可是TABLE是别部门的....
作者: Eleganse (艾勒更斯)   2014-04-06 19:35:00
既然对着这个TABLE下SQL码很慢那就自已造1个TABLE 纪录各个字段的最大值取出并纪录最大值的过程就可以慢慢跑 管他花10分还是20分专案在执行时存取自已造的那个TABLE(虽然这方法很烂 XDD)

Links booklink

Contact Us: admin [ a t ] ucptt.com