Chỉ mục MySQL giúp dễ dàng thực hiện tra cứu và cải thiện tốc độ truy vấn SQL. Dưới đây là cách tạo chỉ mục trong MySQL để cải thiện hiệu suất cơ sở dữ liệu bằng cách sử dụng câu lệnh MySQL CREATE INDEX.
Cách lập chỉ mục hoạt động trong MySQL
Thông thường, khi bạn chạy truy vấn SQL với mệnh đề WHERE hoặc các loại tra cứu khác như đối với JOINS, MySQL cần quét tất cả các bản ghi trong bảng của bạn để tìm các hàng phù hợp. Trong trường hợp bảng của bạn có hàng triệu hàng, điều này có thể rất tốn thời gian và làm chậm các truy vấn SQL của bạn đáng kể.
Chỉ mục MySQL tăng tốc các truy vấn SQL của bạn bằng cách duy trì các giá trị cột được lập chỉ mục trong cấu trúc B-tree được tối ưu hóa cho việc tra cứu và so khớp. Vì vậy, chỉ mục giúp bạn nhanh chóng tìm thấy các hàng phù hợp với một hoặc nhiều giá trị dễ dàng hơn.
Theo mặc định, MySQL tạo chỉ mục cho mọi cột khóa chính trong cơ sở dữ liệu của bạn.
Phần thưởng đọc:Cách tạo thủ tục được lưu trữ trong MySQL
Cách tạo chỉ mục trong MySQL
Dưới đây là các bước để tạo chỉ mục trong MySQL. Bạn có thể tạo chỉ mục tại thời điểm tạo bảng hoặc thêm nó sau đó. Chúng ta sẽ xem xét cả hai cách tiếp cận này.
Cách tạo chỉ mục MySQL trong khi tạo bảng
Đây là cú pháp để tạo chỉ mục trong quá trình tạo bảng
CREATE TABLE table_name(
column_definitions,
INDEX (list_of_columns)
);
Trong truy vấn trên, table_name là bảng của bạn sẽ được tạo và column_definitions là danh sách các cột và định nghĩa.
INDEX (list_of_columns) là nơi bạn tạo chỉ mục MySQL. Chỉ mục sẽ được tạo cho danh sách các cột được phân tách bằng dấu phẩy được đề cập là list_of_columns
Phần thưởng đã đọc:Cách tạo người dùng trong MySQL
Đây là một ví dụ.
CREATE TABLE orders(
order_id INT PRIMARY KEY,
sale INT NOT NULL,
product_id INT NOT NULL,
product_name VARCHAR(10),
INDEX (product_id)
);
Trong truy vấn trên, chúng tôi đã tạo Chỉ mục cho product_id cột.
Dưới đây là một ví dụ về cách tạo chỉ mục bằng cách sử dụng nhiều cột.
CREATE TABLE orders(
order_id INT PRIMARY KEY,
sale INT NOT NULL,
product_id INT NOT NULL,
product_name VARCHAR(10),
INDEX (product_id, order_id)
);
Trong truy vấn trên, chúng tôi đã tạo chỉ mục cho nhiều cột product_id, order_id
Phần thưởng đọc:Cách tạo cơ sở dữ liệu trong MySQL
Cách thêm chỉ mục vào cột trong bảng
Giả sử bạn muốn thêm chỉ mục cho cột hoặc tập hợp các cột, sau đó sử dụng câu lệnh CREATE INDEX. Đây là cú pháp của câu lệnh CREATE INDEX
CREATE INDEX index_name ON table_name (column_list)
Trong truy vấn trên, chúng tôi chỉ định tên chỉ mục, bảng mà bạn cần tạo chỉ mục và danh sách các cột được đưa vào lập chỉ mục.
Dưới đây là ví dụ để thêm chỉ mục mới cho cột product_name trong các đơn đặt hàng ở trên bảng
CREATE INDEX prod_name_index ON orders (product_name);
Để xem các chỉ mục được thêm vào bảng, bạn có thể sử dụng câu lệnh SHOW INDEXES. Đây là cú pháp cho SHOW INDEXES
SHOW INDEXES from table_name;
Đây là một ví dụ để xem các chỉ mục từ đơn đặt hàng bảng
SHOW INDEXES from orders;
Hy vọng bài viết trên sẽ giúp bạn tạo index trong MySQL.
Ubiq giúp dễ dàng trực quan hóa dữ liệu trong vài phút và theo dõi trong trang tổng quan thời gian thực. Thử nó ngay hôm nay!