回答編集履歴
6
追記
answer
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
2回目が早いのは1回目の結果を利用しているからです。
|
|
2
2
|
DBMSも、遅いならまだしも、早くて文句を言われる筋合いはないですし。
|
|
3
|
+
※追記
|
|
3
|
-
[8.9.3
|
|
4
|
+
[8.9.3.2 クエリーキャッシュ SELECT オプション](https://dev.mysql.com/doc/refman/5.6/ja/query-cache-in-select.html)
|
|
4
5
|
そもそも**SQL_NO_CACHE**の意図を取り違えています。
|
|
5
6
|
**SQL_NO_CACHE**はキャッシュの更新をしないという意味で、クエリーキャッシュを無効にするには、query_cache_size システム変数を 0 に設定することです。
|
|
6
7
|
|
5
追記
answer
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
2回目が早いのは1回目の結果を利用しているからです。
|
|
2
2
|
DBMSも、遅いならまだしも、早くて文句を言われる筋合いはないですし。
|
|
3
|
+
[8.9.3 MySQL クエリーキャッシュ](https://dev.mysql.com/doc/refman/5.6/ja/query-cache-in-select.html)
|
|
4
|
+
そもそも**SQL_NO_CACHE**の意図を取り違えています。
|
|
5
|
+
**SQL_NO_CACHE**はキャッシュの更新をしないという意味で、クエリーキャッシュを無効にするには、query_cache_size システム変数を 0 に設定することです。
|
|
3
6
|
|
|
4
7
|
解決すべきは1回目に遅い事で、これはチューニングするしかありません。
|
|
5
8
|
|
4
修正
answer
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
-- 2
|
|
16
16
|
SELECT mp.id
|
|
17
17
|
FROM tagmap mp inner join tag tg
|
|
18
|
+
on mp.tag_id=tg.tag_id
|
|
18
|
-
|
|
19
|
+
where tg.tag ='タグ10001'
|
|
19
20
|
```
|
|
20
21
|
質問では1万件ですが、実際にどの程度に絞り込まれるかによりますが、件数次第では必要なインデックスも変わってくると思います。
|
3
追記
answer
CHANGED
|
@@ -17,4 +17,4 @@
|
|
|
17
17
|
FROM tagmap mp inner join tag tg
|
|
18
18
|
on mp.tag_id=tg.tag_id and tg.tag ='タグ10001'
|
|
19
19
|
```
|
|
20
|
-
|
|
20
|
+
質問では1万件ですが、実際にどの程度に絞り込まれるかによりますが、件数次第では必要なインデックスも変わってくると思います。
|
2
追記
answer
CHANGED
|
@@ -8,7 +8,13 @@
|
|
|
8
8
|
実行結果からはインデックスは最低あるような気もしますので、以下のようなSQLに変更すると改善されるかもしれません。
|
|
9
9
|
|
|
10
10
|
```SQL
|
|
11
|
+
-- 1
|
|
11
12
|
SELECT id FROM tagmap
|
|
12
13
|
where tag_id in (select tag_id from tag where tag ='タグ10001')
|
|
14
|
+
|
|
15
|
+
-- 2
|
|
16
|
+
SELECT mp.id
|
|
17
|
+
FROM tagmap mp inner join tag tg
|
|
18
|
+
on mp.tag_id=tg.tag_id and tg.tag ='タグ10001'
|
|
13
19
|
```
|
|
14
20
|
100万件中どの程度に絞り込まれるかによりますが、件数次第では必要なインデックスも変わってくると思います。
|
1
追記
answer
CHANGED
|
@@ -10,4 +10,5 @@
|
|
|
10
10
|
```SQL
|
|
11
11
|
SELECT id FROM tagmap
|
|
12
12
|
where tag_id in (select tag_id from tag where tag ='タグ10001')
|
|
13
|
-
```
|
|
13
|
+
```
|
|
14
|
+
100万件中どの程度に絞り込まれるかによりますが、件数次第では必要なインデックスも変わってくると思います。
|