Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL nhiều chỉ mục so với chỉ mục nhiều cột để tìm kiếm

Bạn phải hiểu trong MySQL (trong trường hợp là InnoDB), nó chỉ sử dụng tiền tố bên trái nhất trong các chỉ mục của bạn. Vì vậy, nếu chỉ mục nằm trong Field1 + Field2, chỉ truy vấn với Field2 trong WHERE không thể sử dụng toàn bộ chỉ mục.

Và nếu Field1 + Field2 + Field3 là chỉ mục, một truy vấn chỉ có Field1 & Field3 WHERE điều tương tự sẽ xảy ra.

Tùy chọn 1

Bạn sẽ phải tạo một chỉ mục riêng cho từng tình huống tìm kiếm nếu bạn muốn tối ưu hóa từng tìm kiếm. Tuy nhiên, nếu các bảng lớn, thì các chỉ mục cũng sẽ trở nên cực kỳ lớn. Nếu những truy vấn tìm kiếm đó được thực hiện rất thường xuyên, điều này sẽ rất đáng giá.

Tùy chọn 2

Bạn có thể sử dụng một thủ thuật tiện lợi nếu các tìm kiếm của bạn có tính chọn lọc thấp (tức là Giới tính) bằng cách đặt các cột có độ chọn lọc thấp về bên trái nhiều nhất và sử dụng Gender IN(M, F) để đưa nó vào WHERE cùng với (các) cột khác để sử dụng toàn bộ chỉ mục.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel 4:Làm thế nào để áp dụng điều kiện WHERE cho tất cả các truy vấn của một lớp Eloquent?

  2. Làm cách nào để kết nối với MySQL trên Amazon EC2 từ Linux / Mac?

  3. Cho hai bảng, chọn tất cả dữ liệu từ một bảng và chỉ dữ liệu gần đây nhất từ ​​bảng kia

  4. Tiện ích mở rộng mysqli bị thiếu, phpmyadmin không hoạt động

  5. Nhận kết quả của thủ tục được lưu trữ Laravel