はじめに
インデックスってよく聞くけど大事な知識なの?
インデックスはシステムの性能を担保するためにも
現場ではよく使う技術の一つだよ。
今回は、インデックスを実際にDBに適用する方法を
紹介するよ!
インデックス(INDEX)とは?
インデックス(INDEX)の基礎知識
インデックスはどういう時に使うのか
インデックスの使用する時は例えば、「検索処理が遅いと感じたとき」、「主キー以外のカラムで検索処理を行い処理が遅くなることが想定されるとき」などです。上述の通り、インデックス(INDEX)を貼ることで目的のデータの検索処理のスピードが上がります。
インデックスは何に対して貼るのか
また、貼る対象のカラムとしては、検索の条件やORDER BY句、min()やmax()などの関数などを使用するもの、結合のキーなどが挙げられます。また、テーブルの主キーには自動的にインデックス(INDEX)が貼られます。
インデックスのメリットとデメリット
- メリット
→データの検索処理のスピードが速くなります。 - デメリット
→データの更新系の処理スピードは遅くなります。(実際のデータとは別にインデックスも更新しなければならないため。)
検索が早くなるからといって、むやみにインデックスを貼るのではなく、パフォーマンスに影響がある(ありそう)なところに適用するのが良いでしょう。
インデックス(INDEX)の作成方法・確認方法
ここでは、実際にインデックスの作成方法について紹介していきます。
最初に要点のみ記載します。実際の使い方が気になる方は以降もご覧ください。なお、本記事の実行環境はMySQLです。
まずは、DMLでtaskテーブルを作成します。
create table if not exists task(
id INT PRIMARY KEY,
title VARCHAR(50),
content VARCHAR(100)
);
テーブルが作成できたら、下記で現在のインデックスの状態を確認します。
主キーである「id」のカラムにインデックスが貼られていることが確認できました。
SHOW INDEX FROM task;
次にtitleにもインデックスを貼ってみます。
ALTER TABLE task ADD INDEX task_title(title);
もう一度、SHOW INDEXで確認してみます。
titleにもインデックスが貼られたことが確認できました。インデックス名は「Key_name」に入っていますね。
インデックス(INDEX)の削除方法
次にインデックスの削除方法です。
「インデックス(INDEX)の作成方法・確認方法」にて作成した「title」のインデックスを削除していきます。
ALTER TABLE task DROP INDEX task_title;
SHOW INDEXで確認してみると、削除されたことを確認できました。
終わりに
本記事はここまでとなります。ご覧いただきありがとうございました。
ご指摘等がございましたら頂けますと嬉しいです。
引き続き、プログラミングについて定期的に発信していきますのでよろしくお願いします!
また、もしよろしければtwitterもフォローしていただけると嬉しいです。
コメント