インデックスのせいで検索が遅くなってしまった件

インデックスのせいで検索が遅くなってしまった件

この記事を読むのに必要な時間は約 3 分です。

無い方が早い・・・

たまにやる超個別記事

こちら、たまにやる超個別記事です。

余り具体的な話はできませんが、トラブルの解決事例として紹介します。

今回、MySQLではなくMarriaDBで検索をさせていた時の話になるのですが、どうも検索が遅いときがあったので、原因調査を始めたのが発端です。

もともと、遅いという事は無かったのですが、たまに検索がやたらと時間がかかるようになり、プロセスリストだの実行計画だのいろいろ調べていたのですが、原因がさっぱり不明でした。

やっぱり何かしていました・・・・

これは解決したからわかっただけなのですが、自分で遅くなるきっかけを作ってましたね!

そのきっかけとは

[doh class=c1 word=Indexを貼る!]

です。

いや、問題無いと思うでしょ?

解決したから言えるだけなのですが、遅くなっていたのはこれが原因でした。

不要なインデックスを作るとデータの挿入で時間がかsdふぁdヵsdf

みたいな話はどうでもよくって、このような一生に一度体感できるかどうかわからないような遅延ではなく、本当に一回の検索で1分ぐらいかかるような遅延が発生していたのですが、試しにIndexをすべて外して改めて一つだけ貼りなおしたわけですよ。

あら不思議、ちゃんと1秒以下でレスポンスが返ってくるようになったわけじゃないですか!!

Explainはあてにならない(実行計画)

デバッグを実施しているさなかで当然実行計画ももているのですが全く問題なく、実行計画だけで見ると高速に動作する条件はすべて満たしていました。

結論

MarriaDBでIndexを貼っているのに検索が遅い人は、一度Indexをすべて削除してみましょう。

私も原因は不明だったのですが、これだけで修正される可能性大です!

(´◉◞౪◟◉)

 

タイトルとURLをコピーしました