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

Có thể tối ưu hóa truy vấn bằng cách sử dụng mệnh đề EXISTS thay vì IN với DISTINCT không

Hãy thử phiên bản này:

select contract_no AS c_no, cm_mac AS c_mc, min(tstamp) as time2, count(*) as aps
from devices d
where exists (select 1
              from devices d2
              where d2.contract_no = d.contract_no and
                    tstamp >= '2018-10-28 06:59:59' and
                    tstamp <= '2018-10-29 07:00:00'
              )
group by contract_no, cm_mac;

Bạn muốn có chỉ mục trên các thiết bị devices(contract-no, tstamp) .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm toàn văn bản luôn trả về tập hợp kết quả trống

  2. Kết hợp hai truy vấn mysql thành một

  3. password_hash, password_verify, MySQL hiểu nhầm?

  4. Promise-MySQL không thể giải phóng các kết nối trở lại nhóm

  5. Cách lấy tất cả dữ liệu từ 2 bảng bằng khóa ngoại