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

MySQL GIẢI THÍCH:Sử dụng chỉ mục so với sử dụng điều kiện chỉ mục

Một ví dụ giải thích rõ nhất về điều này:

SELECT Year, Make --- possibly more fields and/or from extra tables
FROM myUsedCarInventory
WHERE Make = 'Toyota' AND Year > '2006'

Assuming the Available indexes are:
  CarId
  VIN
  Make
  Make and Year

Truy vấn này sẽ GIẢI THÍCH với 'Sử dụng Chỉ mục' vì nó không cần, hoàn toàn , để "truy cập" bảng myUsedCarInventory vì chỉ mục "Make and Year" "bao hàm" nhu cầu của nó liên quan đến các phần tử của mệnh đề WHERE liên quan đến bảng đó .

Bây giờ, hãy tưởng tượng, chúng ta giữ nguyên truy vấn, nhưng bổ sung thêm một điều kiện về màu sắc

...
WHERE Make = 'Toyota' AND Year > '2006' AND Color = 'Red'

Truy vấn này có thể sẽ GIẢI THÍCH với 'Sử dụng Điều kiện Chỉ mục' ('có khả năng', ở đây là đối với trường hợp Toyota + năm sẽ không được ước tính là đủ chọn lọc và trình tối ưu hóa có thể quyết định chỉ quét bảng). Điều này có nghĩa là MySQL sẽ FIRST sử dụng chỉ mục để giải quyết Make + Year và nó cũng sẽ phải tra cứu hàng tương ứng trong bảng, chỉ dành cho các hàng thỏa mãn điều kiện Make + Year. Đó là những gì đôi khi được gọi là " tối ưu hóa đẩy xuống ".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn một mảng php đa chiều vào cơ sở dữ liệu mysql

  2. MySQL tìm kiếm giá trị json theo khóa trong mảng

  3. Không thể thêm khóa ngoại trong MySQL 5.7 (Thiếu ràng buộc trong bảng được tham chiếu)

  4. Khôi phục giao dịch Mysql khi không cập nhật được

  5. Khai báo trình kích hoạt MySQL biến