質問編集履歴
8
解決したため
test
CHANGED
File without changes
|
test
CHANGED
@@ -255,3 +255,23 @@
|
|
255
255
|
|
256
256
|
|
257
257
|
MySQL5.6.22のバグなんじゃないかと思い始めてます。。
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
###追記6
|
262
|
+
|
263
|
+
AkiraPenguin 様の回答により、解決いたしました!
|
264
|
+
|
265
|
+
ありがとうございます!!!!!
|
266
|
+
|
267
|
+
|
268
|
+
|
269
|
+
なお、追記5の問題も、ちょうど50文字目が「_」となっておりました。
|
270
|
+
|
271
|
+
「_」を含むURLは300万件存在するため、「_」の後に存在しないURLを置いていても、
|
272
|
+
|
273
|
+
それはINDEXが効きません。。。当然ですね。。。
|
274
|
+
|
275
|
+
|
276
|
+
|
277
|
+
たくさんの閲覧・回答ありがとうございました!
|
7
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -241,3 +241,17 @@
|
|
241
241
|
(MyISAMであれば、300万の登録に7分で終わります)
|
242
242
|
|
243
243
|
InnoDBは統計情報がきれいなはずなので、InnoDBであれば、確かに効く気はしています。
|
244
|
+
|
245
|
+
|
246
|
+
|
247
|
+
###追記5
|
248
|
+
|
249
|
+
INDEXが効いたSQLと効かないSQLがありましたので、情報共有いたします。
|
250
|
+
|
251
|
+
”存在しないURL”を指定すると、基本的に、INDEXが効きいて、1秒以内のレスポンスになりました。
|
252
|
+
|
253
|
+
ただし、"存在しないURL"が50文字以上となると、INDEXが効かず、300秒くらいのレスポンスになってしまいました。。
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
MySQL5.6.22のバグなんじゃないかと思い始めてます。。
|
6
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -222,8 +222,22 @@
|
|
222
222
|
|
223
223
|
|
224
224
|
|
225
|
-
|
226
|
-
|
227
225
|
INDEXさえ効けば、検索結果が1件の場合、即終わるハズなのですが、
|
228
226
|
|
229
227
|
実行計画の時点で効かない原因を知りたいです。。
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
###追記4
|
232
|
+
|
233
|
+
InnoDBについて
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
InnoDB化した場合、300万の登録に60分経っても終わらなかったため、INDEXが効くかどうかは分かりません。
|
238
|
+
|
239
|
+
別の仕様(毎秒100件の削除・登録)が不可であるため、InnoDB化はできません。
|
240
|
+
|
241
|
+
(MyISAMであれば、300万の登録に7分で終わります)
|
242
|
+
|
243
|
+
InnoDBは統計情報がきれいなはずなので、InnoDBであれば、確かに効く気はしています。
|
5
微修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -218,4 +218,12 @@
|
|
218
218
|
|
219
219
|
|
220
220
|
|
221
|
-
なお、上記2つの
|
221
|
+
なお、上記2つのINDEXでは、URLのINDEXには届かないため、1件抽出する場合、即レスポンスにならないです。
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
INDEXさえ効けば、検索結果が1件の場合、即終わるハズなのですが、
|
228
|
+
|
229
|
+
実行計画の時点で効かない原因を知りたいです。。
|
4
追記3
test
CHANGED
File without changes
|
test
CHANGED
@@ -193,3 +193,29 @@
|
|
193
193
|
検索用URL(100文字等)を作ってINDEXを貼って検索するのは、個人的には良いのですが、
|
194
194
|
|
195
195
|
仕様決定者的にはNGでした。。
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
###追記3
|
200
|
+
|
201
|
+
index(col7,col1,url(200))の追加案については、
|
202
|
+
|
203
|
+
col7での絞込件数≒実際の絞込件数(urlによる絞り込みがほとんどない)
|
204
|
+
|
205
|
+
であれば、Limitが効くため、性能は良いですが、
|
206
|
+
|
207
|
+
検索結果が「1件」の場合、Limitの効果がないため、性能遅延が発生してしまいます。
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
index(col1,col7,url(200))の追加案については、
|
212
|
+
|
213
|
+
全体の件数≒col7での絞込件数≒実際の絞込件数(col7,urlによる絞り込みがほとんどない)
|
214
|
+
|
215
|
+
であれば、Limitが効くため、性能は良いですが、
|
216
|
+
|
217
|
+
検索結果が「1件」の場合、Limitの効果がないため、性能遅延が発生してしまいます。
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
なお、上記2つの時に、URLのINDEXには届かないため、効かないです。
|
3
仕様条件の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -185,3 +185,11 @@
|
|
185
185
|
にて、断片化は確認をしていて、0.6%程度の断片化率です。
|
186
186
|
|
187
187
|
(該当テーブルのURL以外の指定における性能劣化は見られていません。)
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
###追記2
|
192
|
+
|
193
|
+
検索用URL(100文字等)を作ってINDEXを貼って検索するのは、個人的には良いのですが、
|
194
|
+
|
195
|
+
仕様決定者的にはNGでした。。
|
2
断片化とCHECK TABLEについて、追記済。
test
CHANGED
File without changes
|
test
CHANGED
@@ -159,3 +159,29 @@
|
|
159
159
|
実行計画や速度が遅く感じると判断した際の動作環境は
|
160
160
|
|
161
161
|
phpMyAdmin上での実行結果になります。
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
###追記
|
168
|
+
|
169
|
+
check table tb_test_data;
|
170
|
+
|
171
|
+
を実行した場合、2時間経っても終わらないため、実施していません。
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
check table tb_test_data fast quick;
|
176
|
+
|
177
|
+
にて、テーブルの状態を確認していますが、
|
178
|
+
|
179
|
+
statusは「Table is already up to date」の状態で、問題ない認識です。
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
show table status like 'tb_test_data%';
|
184
|
+
|
185
|
+
にて、断片化は確認をしていて、0.6%程度の断片化率です。
|
186
|
+
|
187
|
+
(該当テーブルのURL以外の指定における性能劣化は見られていません。)
|
1
微修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -98,7 +98,7 @@
|
|
98
98
|
|
99
99
|
id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
|
100
100
|
|
101
|
-
1 | SIMPLE | T1 | range | IX_col
|
101
|
+
1 | SIMPLE | T1 | range | IX_col1,IX_col2,IX_col3,IX_col5_col1,IX_col6,IX_col1_col5,IX_date,IX_url | IX_col1_col5 | 8 | NULL | 1157468 | Using index condition; Using where
|
102
102
|
|
103
103
|
```
|
104
104
|
|