単一カラムのインデックスを作成する
このステップでは、users
という名前のサンプルテーブルを作成し、次に email
カラムに単一カラムのインデックスを作成します。インデックスは、特に大きなテーブルを扱う場合に、データベースクエリのパフォーマンスを向上させるために非常に重要です。
まず、postgres
ユーザーとして PostgreSQL データベースに接続します。
sudo -u postgres psql
次に、users
テーブルを作成します。次の SQL コマンドを実行します。
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(100),
created_at TIMESTAMP
);
このコマンドは、id
、username
、email
、および created_at
のカラムを持つ users
という名前のテーブルを作成します。id
カラムは主キーであり、自動的にインクリメントされます。
次に、いくつかのサンプルデータを users
テーブルに挿入します。次の SQL コマンドを実行します。
INSERT INTO users (username, email, created_at) VALUES
('john_doe', '[email protected]', NOW());
INSERT INTO users (username, email, created_at) VALUES
('jane_smith', '[email protected]', NOW());
INSERT INTO users (username, email, created_at) VALUES
('peter_jones', '[email protected]', NOW());
INSERT INTO users (username, email, created_at) VALUES
('mary_brown', '[email protected]', NOW());
これで、users
テーブルに 4 行のデータが挿入されました。
email
カラムに基づくクエリを高速化するために、email
カラムにインデックスを作成します。次の SQL コマンドを実行します。
CREATE INDEX idx_users_email ON users (email);
このコマンドは、users
テーブルの email
カラムに idx_users_email
という名前のインデックスを作成します。
インデックスが作成されたことを確認するには、psql
で \di
コマンドを使用できます。次のコマンドを実行します。
\di
出力に idx_users_email
インデックスが表示されるはずです。
最後に、次のコマンドを入力して psql
シェルを終了します。
\q