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

MySQL:Nhận các mục mới nhất cũ hơn xxx, Hiệu suất

Bạn muốn có một chỉ mục tổng hợp trên (objectID, time) :

ALTER TABLE my_table ADD INDEX (objectID, time)

Lý do cho điều này là sau đó MySQL có thể truy xuất time tối đa cho mỗi objectID trực tiếp từ cây chỉ mục; sau đó nó cũng có thể sử dụng cùng một chỉ mục khi kết hợp lại với bảng để tìm tối đa theo nhóm các bản ghi bằng cách sử dụng một cái gì đó giống như truy vấn thứ hai của bạn (nhưng một cái nên kết hợp trên cả objectIDtime —Tôi thích sử dụng NATURAL JOIN trong những trường hợp như thế này):

SELECT *
FROM   my_table NATURAL JOIN (
  SELECT   objectID, MAX(time) time
  FROM     my_table
  WHERE    time <= 1353143351
  GROUP BY objectID
) t



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự cố với dữ liệu truy vấn trong bảng

  2. MySQL / PDO ::quote (), Đặt dấu ngoặc kép xung quanh số nguyên

  3. Truy vấn chèn MySQL

  4. Có thể sử dụng Couch DB hoặc MySql hoặc bất kỳ DB nào khác trong Android không?

  5. Hai giá trị được tạo ra trong học thuyết