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

Tại sao một chỉ mục có thể làm cho một truy vấn thực sự chậm?

Vì bạn vẫn cần đọc tất cả dữ liệu từ cả chỉ mục + tệp dữ liệu. Vì bạn không sử dụng bất kỳ where nào điều kiện - bạn sẽ luôn có kế hoạch truy vấn, truy cập tất cả dữ liệu, từng hàng một và bạn không thể làm gì với điều này.

Nếu hiệu suất là quan trọng đối với truy vấn này và nó được thực hiện thường xuyên - tôi khuyên bạn nên lưu kết quả vào bộ nhớ cache vào một số bảng tạm thời và cập nhật nó hàng giờ (hàng ngày, v.v.).

Tại sao nó trở nên chậm hơn:bởi vì trong dữ liệu chỉ mục đã được sắp xếp và khi mysql tính toán chi phí thực hiện truy vấn, nó nghĩ rằng sẽ tốt hơn nếu sử dụng dữ liệu đã được sắp xếp, sau đó nhóm nó, sau đó tính toán tổng thể. Nhưng nó không phải trong trường hợp này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli_stmt ::bind_param () - chỉ định một kiểu dữ liệu khác hơn s cho mỗi tham số

  2. Làm thế nào để lưu trữ wxImage vào cơ sở dữ liệu, sử dụng C ++?

  3. Thực thi câu lệnh bằng phím tắt trong MySQLWorkbench

  4. MySQL:Làm thế nào để chèn một bản ghi cho mỗi kết quả trong một truy vấn SQL?

  5. Làm thế nào để kích hoạt mysqlnd cho php?