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

JOINS vs. pernyataan while

Jika indeks digunakan dengan benar, maka hampir selalu lebih efisien untuk menggunakan GABUNG. Penekanan ditambahkan karena efisiensi terbaik tidak selalu sama dengan kinerja terbaik.

Namun, sebenarnya tidak ada satu jawaban yang cocok untuk semua; anda harus menganalisis kueri menggunakan EXPLAIN untuk memastikan bahwa indeks memang sedang digunakan, tidak ada penggunaan tabel temp yang tidak perlu, dll. Dalam beberapa kasus , kondisi bersekongkol untuk membuat kueri yang tidak bisa menggunakan indeks. Dalam kasus tersebut, mungkin lebih cepat untuk memisahkan kueri menjadi beberapa bagian dengan cara yang telah Anda tunjukkan.

Jika saya menemukan kode seperti itu dalam proyek yang ada, saya akan mempertanyakannya:periksa kueri, pikirkan berbagai cara untuk melakukan kueri, pastikan bahwa hal-hal ini telah dipertimbangkan, buat kasus ilmiah yang didukung fakta untuk atau menentang praktik . Pastikan bahwa pengembang asli melakukan uji tuntas mereka, karena tidak menggunakan JOIN secara dangkal menunjuk ke database atau desain kueri yang buruk. Namun, pada akhirnya, hasilnya berbicara dengan keras dan jika semua pengoptimalan dan koreksi masih menghasilkan penggabungan yang lebih lambat daripada yang disediakan oleh fragmen kueri, maka solusi yang lebih cepat akan berlaku. Patokan dan tindak lanjuti hasil benchmark; tidak ada kasus dalam desain perangkat lunak bahwa Anda harus menukar kinerja yang buruk dengan kepatuhan pada aturan sewenang-wenang tentang apa yang harus atau tidak boleh Anda lakukan. Metode dengan kinerja terbaik adalah metode terbaik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan SSHTunelForwarder untuk terhubung ke db MySQL melalui SSH

  2. Bagaimana mengatasi MySQL innodb Menunggu kunci metadata tabel di TRUNCATE TABLE?

  3. Apakah kutipan di sekitar tabel dan kolom dalam kueri MySQL benar-benar diperlukan?

  4. Mungkinkah menggunakan banyak/pernyataan MySQLi bersarang?

  5. SailsJS - Bagaimana cara menentukan panjang atribut string tanpa mendapatkan kesalahan saat membuat catatan?