回答編集履歴
1
微修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
もう解決されてます
|
1
|
+
もう解決されてるかもしれませんが、回答しておきます。
|
2
2
|
|
3
3
|
|
4
4
|
> その1
|
@@ -37,11 +37,13 @@
|
|
37
37
|
|
38
38
|
> どうすれば結果取得までの時間を短縮し、CPU使用率を低くできるか
|
39
39
|
> 悪くても0.5秒ぐらいで取得したい
|
40
|
+
|
40
|
-
⇒
|
41
|
+
⇒以下のような考え方でCPU使用率を低く、0.5秒くらいで取得できると思います。
|
42
|
+
|
41
43
|
案1)抽出条件にヒットする20~100件を(ORDER BY creation_time 等のINDEXに存在する項目で)先に取得し、
|
42
44
|
その結果に対してRAND()を発生させて、10件取得する。
|
43
45
|
|
44
46
|
⇒INDEX破損がなければ、予想としては0.3秒程度です。
|
45
47
|
|
46
48
|
案2)案1において、update_time項目を追加し、その項目をソート項目とする。
|
47
|
-
(毎回同じ100件の中からランダムに選ぶのを防げる)
|
49
|
+
(毎回同じ100件の中からランダムに選ぶのを防げる)
|