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

MySQL thực hiện truy vấn tạo thêm các cột trong mệnh đề where

@ e4c5 đúng là không có chỉ số nào sẽ giúp được truy vấn hiện tại. Bạn có thể bắt đầu bằng cách thêm các chỉ số sau và thay đổi truy vấn với các điều kiện bổ sung để các chỉ số được sử dụng:

ALTER TABLE myTable
ADD INDEX(categoryId, value1),
ADD INDEX(categoryId, value2),
ADD INDEX(categoryId, value3),
ADD INDEX(categoryId, value4);

Và cập nhật truy vấn như sau:

SELECT * FROM myTable WHERE categoryId = 1 AND (value1 <= 9) AND (value2 <= 9) AND (value3 <= 9) AND (value4 <= 9) AND (value1 + value2 + value3 + value4) > 9;
SELECT * FROM myTable WHERE categoryId = 1 AND (value1 <= 5) AND (value3 <= 5) AND (value4 <= 5) AND (value1 + value3 + value4) > 5;

Các điều kiện bổ sung giúp thu hẹp số hàng được xử lý. Việc thêm chỉ số trên nhiều cột hơn sẽ đẩy nhanh quá trình này hơn nữa nhưng tôi khuyên bạn nên thử điều này trướ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. MySQL Tìm kiếm hậu tố toàn văn bản (chế độ boolean) - (* apple)

  2. Khôi phục đơn đặt hàng thương mại điện tử

  3. Gọi đến một hàm thành viên thực thi () trên boolean trong

  4. Cập nhật chế độ xem trong MySQL

  5. Làm cách nào để thực hiện Lời nhắc mật khẩu khôi phục và thay đổi trường email Người dùng thành trường tên người dùng với Laravel 5.0?