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

回答編集履歴

4

実例

2019/03/11 00:08

投稿

FKM
FKM

スコア3662

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

3

カラムではない

2019/03/11 00:08

投稿

FKM
FKM

スコア3662

answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  0. exists句は遅くなるのでなるべくin句の方が良い
4
4
  0. カラム出力に*は極力使わない
5
- 0. カラム名に識別子のシングルクォート''がついていない
5
+ 0. データレコードに識別子のシングルクォート''がついていない
6
6
  0. テーブル名に``の識別子がついていない
7
7
  0. testテーブルの主キーにインデックスがついていないかも
8
8
  0. 同じテーブルを副問合せする場合は表別名を付与すべし

2

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

2019/03/11 00:02

投稿

FKM
FKM

スコア3662

answer CHANGED
@@ -4,5 +4,7 @@
4
4
  0. カラム出力に*は極力使わない
5
5
  0. カラム名に識別子のシングルクォート''がついていない
6
6
  0. テーブル名に``の識別子がついていない
7
+ 0. testテーブルの主キーにインデックスがついていないかも
8
+ 0. 同じテーブルを副問合せする場合は表別名を付与すべし
7
9
 
8
- 特に3と4甘く見てはいけません。なぜならこれを付けないとmysqlはどれがテーブルなのかすぐ見分けられないので動作が遅くなるとドキュメントに書かれています。
10
+ 特に4が盲点ですが甘く見てはいけません。なぜならこれを付けないとmysqlはどれがテーブルなのかすぐ見分けられないので動作が遅くなるとドキュメントに書かれています。

1

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

2019/03/10 14:15

投稿

FKM
FKM

スコア3662

answer CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  0. exists句は遅くなるのでなるべくin句の方が良い
4
4
  0. カラム出力に*は極力使わない
5
+ 0. カラム名に識別子のシングルクォート''がついていない
5
- 0. テーブル名に``識別子ていない
6
+ 0. テーブル名に``識別子ていない
6
7
 
7
- 特に3を甘く見てはいけません。なぜならこれを付けないとmysqlはどれがテーブルなのかすぐ見分けられないので動作が遅くなるとドキュメントに書かれています。
8
+ 特に3と4を甘く見てはいけません。なぜならこれを付けないとmysqlはどれがテーブルなのかすぐ見分けられないので動作が遅くなるとドキュメントに書かれています。