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ụ.
Cú pháp cơ bản để tạo chỉ mục trong PostgreSQL là:
CREATE INDEX index_name ON table_name (column_name);
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ạ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.
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ả position
và salary
.
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);
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;
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));
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]);
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;
DROP INDEX idx_employee_name;
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';
CREATE INDEX
.DROP INDEX
.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).