Trong PostgreSQL, chỉ mục (index) được sử dụng để cải thiện hiệu suất truy vấn bằng cách giảm thời gian tìm kiếm dữ liệu trong bảng. Dưới đây là hướng dẫn từng bước để tạo chỉ mục, bao gồm cú pháp và một số ví dụ.

Bước 1: Cú Pháp Tạo Chỉ Mục

Cú pháp cơ bản để tạo chỉ mục trong PostgreSQL là:

CREATE INDEX index_name ON table_name (column_name);
  • index_name: Tên của chỉ mục mà bạn muốn tạo.
  • table_name: Tên của bảng mà bạn muốn tạo chỉ mục.
  • column_name: Tên cột mà bạn muốn lập chỉ mục.

Bước 2: Tạo Chỉ Mục Cơ Bản

Ví dụ 1: Tạo Chỉ Mục Đơn Giản

Giả sử bạn có một bảng employees như sau:

CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    position VARCHAR(100),
    salary NUMERIC
);

Để tạo chỉ mục trên cột name, bạn có thể sử dụng cú pháp sau:

CREATE INDEX idx_employee_name ON employees (name);

Bước 3: Tạo Chỉ Mục Đối Với Nhiều Cột

Bạn có thể tạo chỉ mục trên nhiều cột để cải thiện hiệu suất cho các truy vấn mà sử dụng nhiều điều kiện.

Ví dụ 2: Tạo Chỉ Mục Nhiều Cột

CREATE INDEX idx_employee_position_salary ON employees (position, salary);

Chỉ mục này sẽ hữu ích cho các truy vấn có điều kiện lọc theo cả positionsalary.

Bước 4: Các Loại Chỉ Mục Khác

UNIQUE Index

Chỉ mục duy nhất đảm bảo rằng các giá trị trong cột hoặc nhóm cột là duy nhất.

CREATE UNIQUE INDEX idx_unique_employee_name ON employees (name);

Partial Index

Chỉ lập chỉ mục cho một phần của bảng, giúp tiết kiệm không gian.

CREATE INDEX idx_partial_high_salary ON employees (salary) WHERE salary > 50000;

Full-text Index

Hữu ích cho tìm kiếm văn bản đầy đủ.

CREATE INDEX idx_fulltext_name ON employees USING GIN (to_tsvector('english', name));

GIN and GiST Indexes

Hữu ích cho các loại dữ liệu như mảng hoặc dữ liệu địa lý.

CREATE INDEX idx_gin_array ON employees USING GIN (ARRAY[column_name]);

Bước 5: Xóa Chỉ Mục

Nếu bạn không cần chỉ mục nữa hoặc muốn tối ưu hóa lại, bạn có thể xóa chỉ mục bằng lệnh sau:

DROP INDEX index_name;

Ví dụ:

DROP INDEX idx_employee_name;

Bước 6: Kiểm Tra Chỉ Mục

Bạn có thể kiểm tra các chỉ mục đã tạo trong một bảng bằng cách sử dụng lệnh sau:

SELECT * FROM pg_indexes WHERE tablename = 'employees';

Tóm Tắt

  • Tạo chỉ mục bằng cú pháp CREATE INDEX.
  • Có thể tạo chỉ mục đơn giản, chỉ mục nhiều cột, chỉ mục duy nhất, chỉ mục một phần, và các loại chỉ mục khác.
  • Xóa chỉ mục bằng lệnh DROP INDEX.
  • Kiểm tra các chỉ mục đã tạo bằng cách truy vấn bảng pg_indexes.

Sử dụng chỉ mục một cách hợp lý sẽ giúp cải thiện hiệu suất truy vấn trong cơ sở dữ liệu PostgreSQL. Tuy nhiên, hãy cân nhắc đến chi phí duy trì chỉ mục trong các thao tác ghi (INSERT, UPDATE, DELETE).