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

MySQL - trường SELECT WHERE IN (truy vấn con) - Tại sao cực kỳ chậm?

Truy vấn con đang được chạy cho mỗi hàng vì nó là một truy vấn tương quan. Người ta có thể tạo một truy vấn tương quan thành một truy vấn không tương quan bằng cách chọn mọi thứ từ truy vấn con, như sau:

SELECT * FROM
(
    SELECT relevant_field
    FROM some_table
    GROUP BY relevant_field
    HAVING COUNT(*) > 1
) AS subquery

Truy vấn cuối cùng sẽ giống như sau:

SELECT *
FROM some_table
WHERE relevant_field IN
(
    SELECT * FROM
    (
        SELECT relevant_field
        FROM some_table
        GROUP BY relevant_field
        HAVING COUNT(*) > 1
    ) AS subquery
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chặn thông báo cảnh báo bằng mysql từ bên trong Terminal, nhưng mật khẩu được viết bằng tập lệnh bash

  2. Cách gửi email từ MySQL 5.1

  3. Cấu hình của MySQL 8

  4. Làm cách nào để xuất và nhập tệp .sql từ dòng lệnh với các tùy chọn?

  5. Có sự khác biệt về hiệu suất THỰC giữa khóa chính INT và VARCHAR không?