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

質問編集履歴

3

対処法③を削除しました

2021/12/26 10:34

投稿

nikuatsu
nikuatsu

スコア177

title CHANGED
File without changes
body CHANGED
@@ -37,7 +37,7 @@
37
37
  これはインデックス`index_popular_posts`のうち、最初に設定されている「公式の(`is_offisial`)」が抜けた取得となりますので、インデックスが効かないという問題が生じると思います。
38
38
 
39
39
  ### 考えられる対処法
40
- ここで対処法として、以下①②を考えてみました。
40
+ ここで対処法として、以下①②を考えてみました。
41
41
 
42
42
  ----------
43
43
  ①「カーディナリティーの低い順」というルールを無視する

2

対処法③を削除しました

2021/12/26 10:34

投稿

nikuatsu
nikuatsu

スコア177

title CHANGED
File without changes
body CHANGED
@@ -46,20 +46,9 @@
46
46
  ②インデックスを増やす
47
47
  現状の`index_popular_posts(is_offisial,lang_id,count_iine)`だけでなく、
48
48
  さらに`index_popular_posts2(lang_id,count_iine)`でも設定する
49
-
50
- ③`is_official`を削除する
51
-
52
- ・まず、カラム `is_official` は DROP COLUMN する
53
- ・次に、カラム `count_iine`は、レコードが公式である場合だけ +100 しておく
54
-
55
- これによってインデックスは
56
- `index_popular_posts(lang_id,count_iine)`
57
- だけで、「公式の、日本語の、人気順」にも「日本語の、人気順」にも対処できるか?と考えました。
58
-
59
- つまり `count_iine` が 100 以上の場合だけ公式だと解釈するわけです。(実際には100ではなく、最大のいいね数を上回る値ですが。)
60
49
  ----------
61
50
 
62
- 以上の3つうち、どれがなぜ良いのか?または別の良い対処法があるのか?を知りたいです。
51
+ 以上の2つうち、どれがなぜ良いのか?または別の良い対処法があるのか?を知りたいです。
63
52
 
64
53
  ### 使用環境
65
54
  `select version()` -> `5.7.31`

1

対処法に③を追加しました

2021/12/26 10:34

投稿

nikuatsu
nikuatsu

スコア177

title CHANGED
File without changes
body CHANGED
@@ -37,11 +37,29 @@
37
37
  これはインデックス`index_popular_posts`のうち、最初に設定されている「公式の(`is_offisial`)」が抜けた取得となりますので、インデックスが効かないという問題が生じると思います。
38
38
 
39
39
  ### 考えられる対処法
40
- ここで考えらえる対処法ですが、以下①②のうちどちらがなぜ良いのか?または別の良い対処法があるのか?を知りたいです
40
+ ここで対処法として、以下①②③を考えてみた。
41
41
 
42
+ ----------
43
+ ①「カーディナリティーの低い順」というルールを無視する
42
- ①「カーディナリティーの低い順」というルールを無視して、`index_popular_posts(lang_id,is_offisial,count_iine)`というインデックスで設定する
44
+ `index_popular_posts(lang_id,is_offisial,count_iine)`というインデックスで設定する
43
45
 
46
+ ②インデックスを増やす
44
- ②インデックスを`index_popular_posts(is_offisial,lang_id,count_iine)`だけでなく、さらに`index_popular_posts2(lang_id,count_iine)`でも設定する
47
+ 現状の`index_popular_posts(is_offisial,lang_id,count_iine)`だけでなく、
48
+ さらに`index_popular_posts2(lang_id,count_iine)`でも設定する
45
49
 
50
+ ③`is_official`を削除する
51
+
52
+ ・まず、カラム `is_official` は DROP COLUMN する
53
+ ・次に、カラム `count_iine`は、レコードが公式である場合だけ +100 しておく
54
+
55
+ これによってインデックスは
56
+ `index_popular_posts(lang_id,count_iine)`
57
+ だけで、「公式の、日本語の、人気順」にも「日本語の、人気順」にも対処できるか?と考えました。
58
+
59
+ つまり `count_iine` が 100 以上の場合だけ公式だと解釈するわけです。(実際には100ではなく、最大のいいね数を上回る値ですが。)
60
+ ----------
61
+
62
+ 以上の3つうち、どれがなぜ良いのか?または別の良い対処法があるのか?を知りたいです。
63
+
46
64
  ### 使用環境
47
65
  `select version()` -> `5.7.31`