回答編集履歴
2
追記
answer
CHANGED
@@ -5,4 +5,19 @@
|
|
5
5
|
|
6
6
|
SQLでパラメータを含む条件式としては、公式のパラメータを指定しない場合は`Null`として、
|
7
7
|
`is_offisial=coalesce(パラメータ, is_offisial)`
|
8
|
-
のようにすれば良いかと思います。
|
8
|
+
のようにすれば良いかと思います。
|
9
|
+
|
10
|
+
### 追記
|
11
|
+
インデックスを適用するにあたっては以下のポイントがあります。
|
12
|
+
A.使用されるインデックスにする事
|
13
|
+
B.効率の良いインデックスにする事
|
14
|
+
C.共用されるインデックスにする事(※無駄なインデックスを作らない事)
|
15
|
+
※検索性能の観点からは、優先順位はA>B>Cです。更新やリソースの観点からはCが優先です。
|
16
|
+
|
17
|
+
現状のままであれば、AまたはBに該当しません。
|
18
|
+
①では少なくともBではなく、Cを目的としていますね。
|
19
|
+
②はAおよびBを満たし、Cに該当するかどうかという所です。
|
20
|
+
|
21
|
+
提示した案は、AおよびCを満たし、Bは完全ではありません。
|
22
|
+
|
23
|
+
性能の観点からは②がお薦めであり、提示した案は①の亜種です。
|
1
追記
answer
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
②ですね。
|
2
2
|
|
3
3
|
別な方法としては、インデックスは現状のまま、条件を「ANY、日本語の、人気順」にする事です。
|
4
|
-
条件の左辺と右辺を等価に(is_offisial=is_offisial)すればANYになります。
|
4
|
+
条件の左辺と右辺を等価に(`is_offisial=is_offisial`)すればANYになります。
|
5
|
+
|
6
|
+
SQLでパラメータを含む条件式としては、公式のパラメータを指定しない場合は`Null`として、
|
7
|
+
`is_offisial=coalesce(パラメータ, is_offisial)`
|
8
|
+
のようにすれば良いかと思います。
|