[問題] 千萬筆資料中找出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