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

質問編集履歴

2

タイトル誤りについて記載しました。

2017/03/09 05:41

投稿

mosa
mosa

スコア218

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,12 @@
1
+ **###############################################
2
+ 大変申し訳ありません。タイトルと内容が一致していなかったため、意味不明な質問になっていました。
3
+ 問題自体は解決しました。お騒がせしました。
4
+ ###############################################**
5
+
6
+ ---
7
+
8
+
9
+
1
10
  いつもお世話になっております。
2
11
 
3
12
  MySQLのインデックスについての質問です。
@@ -42,7 +51,7 @@
42
51
 
43
52
  ---
44
53
 
45
-
54
+ ```
46
55
  MariaDB [cake]> select count(*) from hoge;
47
56
  +----------+
48
57
  | count(*) |
@@ -57,4 +66,5 @@
57
66
  +-----------------------+
58
67
  | 10.0.29-MariaDB-wsrep |
59
68
  +-----------------------+
60
- 1 row in set (0.00 sec)
69
+ 1 row in set (0.00 sec)
70
+ ```

1

情報を追加しました。

2017/03/09 05:41

投稿

mosa
mosa

スコア218

title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,22 @@
6
6
  a,b,c,d というカラムがあるテーブルに対して、a,b,c,d というインデックスを作成した場合、
7
7
  以下のクエリを実行すると、OrderBy句に b が入っているため、Using Index Condition, **Using FileSort** となってしまいます。
8
8
 
9
+ DDL
9
10
  ```SQL
11
+ CREATE TABLE IF NOT EXISTS `hoge` (
12
+ `id` INT NOT NULL AUTO_INCREMENT,
13
+ `a` INT NULL,
14
+ `b` INT NULL,
15
+ `c` INT NULL,
16
+ `d` INT NULL,
17
+ PRIMARY KEY (`id`),
18
+ INDEX `idx01` (`a`, `b`, `c`, `d`))
19
+ ENGINE = InnoDB
20
+ ;
21
+ ```
22
+
23
+ SQL
24
+ ```SQL
10
25
  SELECT
11
26
  *
12
27
  FROM
@@ -21,5 +36,25 @@
21
36
  ```
22
37
 
23
38
  Index Condition として既に使用しているキーを OrderBy の第2ソートキーで再度使用することはできないのでしょうか。
24
- つまり、上記のクエリで Using FileSort を発生させない方法はないのでしょうか。
39
+ つまり、上記のクエリで Using Index Condition を維持したまま Using FileSort を発生させない方法はないのでしょうか。
25
- (sort buffer を増やす、とかはなしで)
40
+ (sort buffer を増やす、とかはなしで)
41
+
42
+
43
+ ---
44
+
45
+
46
+ MariaDB [cake]> select count(*) from hoge;
47
+ +----------+
48
+ | count(*) |
49
+ +----------+
50
+ | 1048576 |
51
+ +----------+
52
+ 1 row in set (0.45 sec)
53
+
54
+ MariaDB [cake]> select version();
55
+ +-----------------------+
56
+ | version() |
57
+ +-----------------------+
58
+ | 10.0.29-MariaDB-wsrep |
59
+ +-----------------------+
60
+ 1 row in set (0.00 sec)