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

FORCE INDEX trong MySQL - tôi phải đặt nó ở đâu?

Cú pháp cho chỉ mục gợi ý được ghi lại tại đây:
http:// dev.mysql.com/doc/refman/5.6/en/index-hints.html

FORCE INDEX đi ngay sau tham chiếu bảng:

SELECT * FROM (
    SELECT owner_id,
           product_id,
           start_time,
           price,
           currency,
           name,
           closed,
           active,
           approved,
           deleted,
           creation_in_progress
    FROM db_products FORCE INDEX (products_start_time)
    ORDER BY start_time DESC
) as resultstable
WHERE resultstable.closed = 0
      AND resultstable.active = 1
      AND resultstable.approved = 1
      AND resultstable.deleted = 0
      AND resultstable.creation_in_progress = 0
GROUP BY resultstable.owner_id
ORDER BY start_time DESC

CẢNH BÁO:

Nếu bạn đang sử dụng ORDER BY trước GROUP BY để nhận mục nhập mới nhất theo owner_id , bạn đang sử dụng một hành vi không chuẩn và không có giấy tờ của MySQL để làm điều đó.

Không có gì đảm bảo rằng nó sẽ tiếp tục hoạt động trong các phiên bản MySQL trong tương lai và truy vấn có thể là lỗi trong bất kỳ RDBMS nào khác.

Tìm kiếm trong để có nhiều giải thích về các giải pháp tốt hơn cho loại truy vấn 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. Truy vấn MySQL để lấy tên cột?

  2. Tăng cường hiệu quả bên ngoài với MySQL và ejabberd

  3. Người dùng nhập liệu rất đơn giản trong django

  4. mySQL - Chèn vào ba bảng

  5. Đầu vào của người dùng, làm sạch và vệ sinh trước khi gửi đến db