回答編集履歴

4

実例

2019/03/11 00:08

投稿

FKM
FKM

スコア3608

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

カラムではない

2019/03/11 00:08

投稿

FKM
FKM

スコア3608

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

インデックスと表別名を追加

2019/03/11 00:02

投稿

FKM
FKM

スコア3608

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
- 特に3と4甘く見てはいけません。なぜならこれを付けないとmysqlはどれがテーブルなのかすぐ見分けられないので動作が遅くなるとドキュメントに書かれています。
19
+ 特に4が盲点ですが甘く見てはいけません。なぜならこれを付けないとmysqlはどれがテーブルなのかすぐ見分けられないので動作が遅くなるとドキュメントに書かれています。

1

テーブルだけじゃなくてカラムも

2019/03/10 14:15

投稿

FKM
FKM

スコア3608

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はどれがテーブルなのかすぐ見分けられないので動作が遅くなるとドキュメントに書かれています。