Developer

【SQL基礎】インデックスの更新削除
2021.09.30
Lv1

【SQL基礎】インデックスの更新削除

インデックスの更新削除


前回、インデックスの更新について紹介しました。

本記事では作成したインデックスの削除方法について説明します。

インデックスの更新方法について確認したい方はこちらの記事を参照してください。

インデックスとはの記事で説明したように、インデックス作成済のテーブルに新たにデータを追加すると、そのデータはインデックスにも追加されます。また、データの並び替えを行っている場合は、新規データが追加されるたびに並び替え処理が行われます。そのためインデックスを濫用するとデータ書き換え時の処理速度が遅くなる原因になります。

そこで、不要なインデックスは削除する必要があります。

 

インデックスの削除①


不要なインデックスを削除する場合はDROP INDEX文を利用します。

構文は以下の通りです。

DROP INDEX インデックス名;

DROP INDEX インデックス名 ON テーブル名; (Mysqlの場合)

インデックスを削除するには、インデックスを作成したときにつけたインデックス名を指定します。

試しにサンプルで作成した「address_index」という名前のインデックスを削除してみます。


DROP INDEX address_index ON teachers;

実行後にインデックスを見てみると、削除されているのが確認できます。


インデックスの削除②

インデックスの削除はALTER TABLE文でもできます。

書式は以下の通りです。

ALTER TABLE テーブル名 DROP INDEX インデックス名;

こちらはインデックスが作成済のテーブルに対してインデックスの削除を行います。

この構文を使って作成済の以下インデックス(t_index)を削除してみます。


ALTER TABLE teachers DROP INDEX t_index;

実行後にインデックスを見ると削除されているのが確認できます。

 

 


今回の学習ポイント


練習問題

問題として使用するデータは「SQL練習問題」のものを使用しています。

以下からダウンロード可能です。

以下のようにしてworldcup2014データベースを作成し、インポートしてください。

※worldcup2014.zip解凍してできるworldcup2014.sqlファイルをCドライブ直下に配置した場合。

worldcup2014.sql

[sql]

CREATE DATABASE worldcup2014;

USE worldcup2014;

source C:\worldcup2014.sql

[/sql]

 

  1. インデックスの更新記事で作成したclub_indexという名前のインデックスを削除してください。

答え
[sql]

DROP INDEX club_index ON players;

[/sql]

以下のようにインデックスが削除できていればOKです。

以上、インデックスの更新削除についてでした。

 

連載目次リンク

SQL基礎 連載目次

関連する連載リンク

SQL練習問題 一覧まとめ