回答編集履歴
4
実例
test
CHANGED
@@ -4,16 +4,20 @@
|
|
4
4
|
|
5
5
|
0. exists句は遅くなるのでなるべくin句の方が良い
|
6
6
|
|
7
|
-
0.
|
7
|
+
0. データレコード出力に*は極力使わない
|
8
8
|
|
9
9
|
0. データレコードに識別子のシングルクォート''がついていない
|
10
10
|
|
11
11
|
0. テーブル名に``の識別子がついていない
|
12
12
|
|
13
|
-
0. testテーブル
|
13
|
+
0. testテーブルにインデックスを付与していないかも?
|
14
14
|
|
15
15
|
0. 同じテーブルを副問合せする場合は表別名を付与すべし
|
16
16
|
|
17
17
|
|
18
18
|
|
19
19
|
特に4が盲点ですが甘く見てはいけません。なぜならこれを付けないとmysqlはどれがテーブルなのかすぐ見分けられないので動作が遅くなるとドキュメントに書かれています。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
自分も15000件ほどのレコードを副問合せで検索させた場合、10分ぐらいかかるという同じような問題に直面したことがあり、このような処理を施すことによって5秒かからないぐらいに改善されたことがあります。
|
3
カラムではない
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
0. カラム出力に*は極力使わない
|
8
8
|
|
9
|
-
0.
|
9
|
+
0. データレコードに識別子のシングルクォート''がついていない
|
10
10
|
|
11
11
|
0. テーブル名に``の識別子がついていない
|
12
12
|
|
2
インデックスと表別名を追加
test
CHANGED
@@ -10,6 +10,10 @@
|
|
10
10
|
|
11
11
|
0. テーブル名に``の識別子がついていない
|
12
12
|
|
13
|
+
0. testテーブルの主キーにインデックスがついていないかも
|
14
|
+
|
15
|
+
0. 同じテーブルを副問合せする場合は表別名を付与すべし
|
13
16
|
|
14
17
|
|
18
|
+
|
15
|
-
特に
|
19
|
+
特に4が盲点ですが甘く見てはいけません。なぜならこれを付けないとmysqlはどれがテーブルなのかすぐ見分けられないので動作が遅くなるとドキュメントに書かれています。
|
1
テーブルだけじゃなくてカラムも
test
CHANGED
@@ -6,8 +6,10 @@
|
|
6
6
|
|
7
7
|
0. カラム出力に*は極力使わない
|
8
8
|
|
9
|
+
0. カラム名に識別子のシングルクォート''がついていない
|
10
|
+
|
9
|
-
0. テーブル名に``
|
11
|
+
0. テーブル名に``の識別子がついていない
|
10
12
|
|
11
13
|
|
12
14
|
|
13
|
-
特に3を甘く見てはいけません。なぜならこれを付けないとmysqlはどれがテーブルなのかすぐ見分けられないので動作が遅くなるとドキュメントに書かれています。
|
15
|
+
特に3と4を甘く見てはいけません。なぜならこれを付けないとmysqlはどれがテーブルなのかすぐ見分けられないので動作が遅くなるとドキュメントに書かれています。
|