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

Kinerja operator MySQL IN pada jumlah nilai (besar?)

Secara umum, jika IN list menjadi terlalu besar (untuk beberapa nilai 'terlalu besar' yang tidak jelas yang biasanya di wilayah 100 atau lebih kecil), menjadi lebih efisien untuk menggunakan gabungan, membuat tabel sementara jika perlu untuk menahan angka.

Jika angka-angkanya padat (tidak ada celah - yang disarankan oleh data sampel), maka Anda dapat melakukannya lebih baik lagi dengan WHERE id BETWEEN 300 AND 3000 .

Namun, mungkin ada celah di set, pada titik mana mungkin lebih baik untuk pergi dengan daftar nilai yang valid (kecuali kesenjangan dalam jumlah yang relatif sedikit, dalam hal ini Anda dapat menggunakan:

WHERE id BETWEEN 300 AND 3000 AND id NOT BETWEEN 742 AND 836

Atau apa pun celahnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kapan *tidak* menggunakan pernyataan yang sudah disiapkan?

  2. Bagaimana saya bisa mensimulasikan variabel array di MySQL?

  3. Cara paling efisien untuk mendapatkan jumlah baris tabel

  4. Instalasi Neo4j

  5. Contoh cara menggunakan bind_result vs get_result