2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SQLアンチパターン:インデックスショットガン (闇雲インデックス)

Posted at

SQLアンチパターンを読み始めたので、1つ1つ書いてのメモです

目的

  • パフォーマンスを最適化する

アンチパターン

闇雲にインデックスを使用する

  • インデックスを定義しない、もしくは、少しだけ
  • インデックスを多く定義する、もしくは、役に立たないのを定義する
  • インデックスを活用しないクエリーを実行してしまう

インデックスは、オーバーヘッドを発生させる

  • insert、update、delete の時にインデックスは更新されるが、selectの方が多いので、インデックス維持のためのオーバーヘッドと、selectのためのオーバーヘッドを比べて考える

インデックスを使えないクエリを実行する

  • 複合インデックスでは、順番が大切(左から右)で、順番通りに使わないといけない

  • 無駄なインデックスになる時がある

  • インデックスは、SQLの規格ではない

用いてもいいパターン

汎用的なデータベースを設計する必要がある場合

  • この場合は、あとで必要なことがわかる

解決策

まとめ

データとクエリについての理解を深め、MENTOR の原則に基づいてインデックスを管理しましょう。

感想

  • MENTOR の原則
  • 複合インデックスは、設計とアプリケーションの実装両方をしないといけなさそう

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?