現在作成してるものでメインデータ700万件超。
メインデータに紐づくタグデータ 6000万超。
と個人でなんとかするには無茶なデータ量。
当然、INDEXを張ったりなんだり。
覚えておく事として、mysqlは基本、1INDEXしか使わない。
複数のINDEXをしようして検索しませんよと。サブクエリーとかはまたそこでINDEXを使います。
1SQLで1INDEXというわけではないので注意。
で、当然こんだけあると遅い、遅い。
せめて1秒くらいで欲しいデータをだしたい。
そこで解析に使うのが[EXPLAIN]ですが、項目の簡単な見方。
あくまで簡易的であり私の私見なので間違ってたりするかもしれません。
table:
どのテーブルが対象なのかを表してます。
type:
検索パターンを示してます。ALLは基本的には無くす方向でチューニングします。
indexの場合には要注意くらいでも大丈夫かも。
possible_keys:
INDEX名が表示されます。
row:
実行するために必要だと判定したレコードの件数。
実際の件数ではないが、その件数を見る予定なので乱暴だが少ない方がいいと考えてよい。
Extra:
色々ありますが、Using filesort、Using temporaryが表示された場合は注意した方がいい。
0 件のコメント:
コメントを投稿