はじめに
作成したWEBサイトの負荷テストで、データを一覧表示しているページにアクセスしたところ、表示に時間がかかりすぎタイムアウトエラーが発生したため、DBにインデックスを設定する対応を行なった。
インデックスとは
インデックス(index)とは、データの検索や並び替え、取得を高速化するために利用されるデータベース管理の仕組みの1つ。
例えば本についてのデータ(タイトル、著者、出版社、発売日)が格納されている10億行のテーブルから、「著者」列が「村上春樹」であるデータを取得したい場合、下記のようなsqlを書くが、そこで「著者」列にインデックスを設定しておくことで、素早くDBが条件に合致するデータを取ってきてくれる。
'SELECT * FROM テーブル名 where 著者 = 村上春樹'
設定方法
インデックスの設定方法は簡単で、基本的によくwhere句で使用されている列に対して、下記のように設定すればよい。
'CREATE INDEX インデックス名 ON テーブル名 (著者)'
まとめ
インデックスは本棚における本の目次のようなもので、データベース内の情報を整理し、素早く目的のデータを見つけるのに役立つもの。
[参考サイト]
・https://products.sint.co.jp/siob/blog/index
・https://analytics-okinawa.jp/database/2005/
・https://it-biz.online/it-skills/index/