質問編集履歴
5
間違いの訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -90,7 +90,7 @@
|
|
90
90
|
|
91
91
|
```SQL
|
92
92
|
|
93
|
-
SELECT syumi_id,syumi_name,COUNT(DISTINCT(pet_
|
93
|
+
SELECT syumi_id,syumi_name,COUNT(DISTINCT(pet_name)) AS cnt
|
94
94
|
|
95
95
|
FROM t_petlist
|
96
96
|
|
4
誤字
test
CHANGED
File without changes
|
test
CHANGED
@@ -134,7 +134,7 @@
|
|
134
134
|
|
135
135
|
重くしている部分は、COUNT(DISTINCT(pet_id))で、DISTINCTを外すと0.5秒もかからないほど早くなります。
|
136
136
|
|
137
|
-
ただ、今回カウントしたいのは、「その趣味の人が飼っているペット名付けた名前の種類数」なので、
|
137
|
+
ただ、今回カウントしたいのは、「その趣味の人が飼っているペットに名付けた名前の種類数」なので、
|
138
138
|
|
139
139
|
スポーツが趣味の人で、その中の5人がペットに「ポチ」と名付けた場合は、その重複は除かなくてはいけません。
|
140
140
|
|
3
誤字の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -120,6 +120,8 @@
|
|
120
120
|
|
121
121
|
このクエリが約3秒ほどかかってしまいます。
|
122
122
|
|
123
|
+
目標は1秒を切りたいと考えています。
|
124
|
+
|
123
125
|
|
124
126
|
|
125
127
|
**EXPLAIN実行結果**
|
2
EXPLAIN結果追加、インデックスすべて表示
test
CHANGED
File without changes
|
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
**t_syumi[InnoDB] 趣味テーブル**
|
18
18
|
|
19
|
-
syumi_id(autoincrement),syumi_name データ数約2000件
|
19
|
+
syumi_id(autoincrement),syumi_name データ数約2000件 ※syumi_idがプライマリキー
|
20
20
|
|
21
21
|
1,スポーツ
|
22
22
|
|
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
**t_user[InnoDB] ユーザーテーブル** データ数約6000件
|
34
34
|
|
35
|
-
user_id(autoincrement),user_name
|
35
|
+
user_id(autoincrement),user_name ※user_idがプライマリキー
|
36
36
|
|
37
37
|
1,田中一郎
|
38
38
|
|
@@ -50,7 +50,7 @@
|
|
50
50
|
|
51
51
|
※一人で複数の趣味を持っている場合もあります
|
52
52
|
|
53
|
-
set_id(autoincrement),user_id,syumi_id **※user_id,syumi_idに複合ユニークキー制約があります**
|
53
|
+
set_id(autoincrement),user_id,syumi_id **※set_idがプライマリキー,user_id,syumi_idに複合ユニークキー制約があります**
|
54
54
|
|
55
55
|
1,1,4
|
56
56
|
|
@@ -68,7 +68,7 @@
|
|
68
68
|
|
69
69
|
※一人で複数のペットを飼っている場合もあるため、一人で複数登録されている場合もあります
|
70
70
|
|
71
|
-
pet_id(autoincrement),user_id,pet_name **※user_id,pet_nameに複合ユニークキー制約があります**
|
71
|
+
pet_id(autoincrement),user_id,pet_name **※pet_idがプライマリキー,user_id,pet_nameに複合ユニークキー制約があります**
|
72
72
|
|
73
73
|
1,1,ポチ
|
74
74
|
|
@@ -122,6 +122,14 @@
|
|
122
122
|
|
123
123
|
|
124
124
|
|
125
|
+
**EXPLAIN実行結果**
|
126
|
+
|
127
|
+

|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
|
125
133
|
重くしている部分は、COUNT(DISTINCT(pet_id))で、DISTINCTを外すと0.5秒もかからないほど早くなります。
|
126
134
|
|
127
135
|
ただ、今回カウントしたいのは、「その趣味の人が飼っているペット名付けた名前の種類数」なので、
|
1
タイトルの変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
【MySQL】約15万件のテーブルになってからクエリが遅くなりました。アドバイスお願いしたいです。
|
1
|
+
【MySQL】約15万件のテーブルになってからクエリが遅くなりました。テーブル設計とクエリを公開しますのでアドバイスお願いしたいです。
|
test
CHANGED
File without changes
|