回答編集履歴
7
追記
test
CHANGED
@@ -68,6 +68,18 @@
|
|
68
68
|
|
69
69
|
--
|
70
70
|
|
71
|
+
```SQL
|
72
|
+
|
73
|
+
select asin from asin
|
74
|
+
|
75
|
+
where MonorateBuyNum >= 15
|
76
|
+
|
77
|
+
and SettingProductItem=1
|
78
|
+
|
79
|
+
and (FlagSer&20)=0
|
80
|
+
|
81
|
+
```
|
82
|
+
|
71
|
-
[FlagSer&20]について、式インデックスを追加
|
83
|
+
結局のところ、上記のクエリーが早くなれば解決すると思いますので、[FlagSer&20]について、式インデックスを追加されてはどうでしょうか。
|
72
84
|
|
73
85
|
[MySQL 5.7で生成カラムを使って関数INDEXを作成する](https://qiita.com/hmatsu47/items/128ece7276e4deac1477)
|
6
追記
test
CHANGED
@@ -63,3 +63,11 @@
|
|
63
63
|
analyzetime:(asin, SiteName, Tick)
|
64
64
|
|
65
65
|
※既存ので間にあう気もしますが。
|
66
|
+
|
67
|
+
追記
|
68
|
+
|
69
|
+
--
|
70
|
+
|
71
|
+
[FlagSer&20]について、式インデックスを追加すればインデックスによる検索が行われると思いますので、追加されてはどうでしょうか。
|
72
|
+
|
73
|
+
[MySQL 5.7で生成カラムを使って関数INDEXを作成する](https://qiita.com/hmatsu47/items/128ece7276e4deac1477)
|
5
追記
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
+
そもそもですが、[FlagSer&20]についてのインデックスが無いので、検索でインデックスのみにはならないと思います。
|
2
|
+
|
1
|
-
|
3
|
+
ただ、インデックスだけで解決できるように、先ずは以下の複合インデックスを追加してみてはどうでしょうか。
|
2
4
|
|
3
5
|
※データ分布などが良く分かりませんので効率的なものとは言えませんが。
|
4
6
|
|
4
推敲
test
CHANGED
@@ -59,3 +59,5 @@
|
|
59
59
|
asin:(MonorateBuyNum, SettingProductItem, FlagSer, asin)
|
60
60
|
|
61
61
|
analyzetime:(asin, SiteName, Tick)
|
62
|
+
|
63
|
+
※既存ので間にあう気もしますが。
|
3
推敲
test
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
```
|
30
30
|
|
31
|
-
後は主キーinを使用するとか
|
31
|
+
後は主キーを条件にしたinを使用するとか
|
32
32
|
|
33
33
|
```SQL
|
34
34
|
|
2
追記
test
CHANGED
@@ -27,3 +27,35 @@
|
|
27
27
|
and (asin.FlagSer&20)=0
|
28
28
|
|
29
29
|
```
|
30
|
+
|
31
|
+
後は主キーinを使用するとか
|
32
|
+
|
33
|
+
```SQL
|
34
|
+
|
35
|
+
select asin
|
36
|
+
|
37
|
+
from analyzetime
|
38
|
+
|
39
|
+
where Tick < 637433317810371056
|
40
|
+
|
41
|
+
and SiteName='サウンドハウス'
|
42
|
+
|
43
|
+
and asian in (
|
44
|
+
|
45
|
+
select asin from asin
|
46
|
+
|
47
|
+
where MonorateBuyNum >= 15
|
48
|
+
|
49
|
+
and SettingProductItem=1
|
50
|
+
|
51
|
+
and (FlagSer&20)=0
|
52
|
+
|
53
|
+
)
|
54
|
+
|
55
|
+
```
|
56
|
+
|
57
|
+
上記の場合のインデックスは、
|
58
|
+
|
59
|
+
asin:(MonorateBuyNum, SettingProductItem, FlagSer, asin)
|
60
|
+
|
61
|
+
analyzetime:(asin, SiteName, Tick)
|
1
訂正
test
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
※データ分布などが良く分かりませんので効率的なものとは言えませんが。
|
4
4
|
|
5
|
-
asi
|
5
|
+
asin:(asin, MonorateBuyNum, SettingProductItem, FlagSer)
|
6
6
|
|
7
|
-
analyzetime:(asi
|
7
|
+
analyzetime:(asin, Tick, SiteName)
|
8
8
|
|
9
9
|
|
10
10
|
|
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
```SQL
|
14
14
|
|
15
|
-
select analyzetime.asi
|
15
|
+
select analyzetime.asin
|
16
16
|
|
17
17
|
from analyzetime inner join asin using(asin)
|
18
18
|
|