Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cho các truy vấn chậm trở nên nhanh chóng bằng cách sử dụng các chỉ mục tổng hợp trong MySQL


Trước tiên, chúng ta hãy xem Chỉ mục tổng hợp là gì -

  • Chỉ mục tổng hợp là một chỉ mục được sử dụng trên nhiều cột.

  • Nó còn được gọi là chỉ mục nhiều cột.

  • MySQL cho phép người dùng tạo chỉ mục tổng hợp có thể bao gồm tối đa 16 cột.

  • Trình tối ưu hóa truy vấn sử dụng các chỉ mục tổng hợp cho các truy vấn sẽ kiểm tra tất cả các cột trong chỉ mục.

  • Nó cũng có thể được sử dụng cho các truy vấn sẽ kiểm tra các cột đầu tiên, hai cột đầu tiên, v.v.

  • Nếu các cột được chỉ định theo đúng thứ tự trong định nghĩa chỉ mục, thì một chỉ mục tổng hợp duy nhất có thể được sử dụng để tăng tốc một số loại truy vấn nhất định trên cùng một bảng.

Hãy để chúng tôi xem cách tạo chỉ mục tổng hợp trong quá trình tạo bảng. Nó có thể được thực hiện bằng cách sử dụng câu lệnh dưới đây -

Truy vấn

CREATE TABLE table_name (
   c1 data_type PRIMARY KEY,
   c2 data_type,
   c3 data_type,
   c4 data_type,
   INDEX index_name (c2,c3,c4)
);

Trong câu lệnh trên, chỉ mục tổng hợp bao gồm ba cột c2, c3 và c4.

Chỉ mục tổng hợp cũng có thể được thêm vào bảng hiện có bằng cách sử dụng câu lệnh 'CREATE INDEX'. Hãy để chúng tôi xem cách này có thể được thực hiện -

Truy vấn

CREATE INDEX index_name
ON table_name(c2,c3,c4);

Hãy để chúng tôi xem cách các truy vấn sloq có thể được thực hiện nhanh chóng bằng cách sử dụng Chỉ mục tổng hợp -

  • Tốc độ thực thi truy vấn phụ thuộc vào thời lượng của nó.

  • Sử dụng gợi ý chỉ mục sẽ tăng tốc độ truy vấn.

  • Trình tối ưu hóa MySQL có thể được sử dụng để đưa ra quyết định đúng đắn trong khi chọn chỉ mục.

  • Nhưng điều này chỉ nên được thực hiện trên các truy vấn tĩnh.

  • Nếu các truy vấn được thêm vào trong đó mệnh đề 'WHERE' thay đổi, hiệu suất của các truy vấn sẽ kém đi, vì nó sẽ không cho phép trình tối ưu hóa thực hiện công việc của mình.

  • Câu lệnh ‘FORCE INDEX’ hoạt động giống như ‘USE INDEX (index_list), ngoài ra, việc quét bảng được coi là một nhiệm vụ tốn kém.

  • Chỉ cần quét bảng nếu không có cách nào sử dụng chỉ mục đã đặt tên để tìm các hàng trong bảng.