Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL - SELECT WHERE field IN (subquery) - Mengapa sangat lambat?

Subquery dijalankan untuk setiap baris karena merupakan kueri yang berkorelasi. Seseorang dapat membuat kueri yang berkorelasi menjadi kueri yang tidak berkorelasi dengan memilih semuanya dari subkueri, seperti:

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

Permintaan terakhir akan terlihat seperti ini:

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. Menjalankan file MySQL *.sql di PHP

  2. Bagaimana cara mengubah cap waktu menjadi datetime di MySQL?

  3. Cara mengatur koneksi PDO dengan benar

  4. Bagaimana cara memberikan izin akses jarak jauh ke server mysql untuk pengguna?

  5. Izinkan semua koneksi jarak jauh, MySQL