teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

微修正

2017/07/25 09:54

投稿

tomari_perform
tomari_perform

スコア760

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件の中からランダムに選ぶのを防げる)