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

回答編集履歴

6

追記

2019/02/11 02:09

投稿

sazi
sazi

スコア25437

answer CHANGED
@@ -1,6 +1,7 @@
1
1
  2回目が早いのは1回目の結果を利用しているからです。
2
2
  DBMSも、遅いならまだしも、早くて文句を言われる筋合いはないですし。
3
+ ※追記
3
- [8.9.3 MySQL クエリーキャッシュ](https://dev.mysql.com/doc/refman/5.6/ja/query-cache-in-select.html)
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

追記

2019/02/11 02:09

投稿

sazi
sazi

スコア25437

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

修正

2019/02/11 02:06

投稿

sazi
sazi

スコア25437

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
- on mp.tag_id=tg.tag_id and tg.tag ='タグ10001'
19
+ where tg.tag ='タグ10001'
19
20
  ```
20
21
  質問では1万件ですが、実際にどの程度に絞り込まれるかによりますが、件数次第では必要なインデックスも変わってくると思います。

3

追記

2019/02/10 15:23

投稿

sazi
sazi

スコア25437

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
- 100万件どの程度に絞り込まれるかによりますが、件数次第では必要なインデックスも変わってくると思います。
20
+ 質問では1万件ですが、実際にどの程度に絞り込まれるかによりますが、件数次第では必要なインデックスも変わってくると思います。

2

追記

2019/02/10 15:22

投稿

sazi
sazi

スコア25437

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

追記

2019/02/10 15:20

投稿

sazi
sazi

スコア25437

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万件中どの程度に絞り込まれるかによりますが、件数次第では必要なインデックスも変わってくると思います。