ACCESS インデックスとは

インデックスとは

ACCESSのテーブルにはインデックスを設定することができます。
インデックスを設定することで、検索を早くすることが可能です。

今回は、ACCESSのインデックスについてご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。

インデックスとは

インデックスとはレコードの検索や並べ替えを高速にするためのものです。
マイクロソフトのサポートには以下の記述があります。

インデックスを使用すると Access によるレコードの検索と並べ替えの速度が速くなります。 インデックスには、インデックスを作成する対象の 1 つ以上のフィールドに基づくレコードの位置が保存されます。 Access では、インデックスから位置を取得した後、正しい位置に直接移動して、データを取得できます。 このように、インデックスを使用すると、すべてのレコードをスキャンするよりもはるかに高速にデータを検索できます。

マイクロソフトサポート:インデックスの作成と使用によりパフォーマンスを向上させる

つまり、あらかじめ検索や並べ替えをしやすいように、ACCESS内でレコードの位置を別に保存しておきますよ、というものです。
ACCESSでは検索や並べ替えは頻繁に行う処理なので、それが早くなるのは嬉しいですよね。

インデックスを設定すべきフィールド

インデックスはテーブルのフィールドに対して設定するのですが、ではすべてのフィールドにインデックスを設定すればよいかというとそうではありません。
同じくマイクロソフトのサポートに以下の記述があります。

インデックスは、検索やクエリの高速化に役立ちますが、データを追加または更新するとパフォーマンスが低下することがあります。 インデックスが設定された 1 つ以上のフィールドを含むテーブルにデータを入力すると、レコードが追加または変更されるたびにインデックスを更新する必要があります。 追加クエリを使用したり、インポート済みレコードを追加してレコードを追加したりすると、追加先テーブルにインデックスがあると、パフォーマンスが低下する可能性が高くなります。

マイクロソフトサポート:インデックスの作成と使用によりパフォーマンスを向上させる

インデックスを作るとACCESSを使ったデータ処理のたびにインデックスの更新も行われるため、処理が遅くなってしまうのです。
そのため、インデックスによる検索・並べ替えスピードの向上と、レコード更新処理時にインデックス更新による処理の遅延を比較し、必要な個所にだけインデックスを設定するのが効果的です。

そのため、インデックスは、検索や並べ替えに利用するフィールドのみに設定するのが良いでしょう。

インデックスの設定方法

インデックスはテーブルのデザインビューで設定できます。

フィールドを選択し、そのプロパティの中で「インデックス」を「はい」にすればインデックスが作成されます。
また、現在インデックスが設定されているフィールドは、メニューのインデックスボタンから確認可能です。

インデックスボタンを押すと以下のようにインデックスが設定されたフィールドが表示されます。

なお、テーブルの主キーに設定したフィールドにはインデックスが自動生成されます。

以上、インデックスについてご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。