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

Kapan menggunakan STRAIGHT_JOIN dengan MySQL

Saya tidak akan merekomendasikan menggunakan STRAIGHT_JOIN tanpa alasan yang bagus. Pengalaman saya sendiri adalah bahwa pengoptimal kueri MySQL lebih sering memilih paket kueri yang buruk daripada yang saya inginkan, tetapi tidak cukup sering sehingga Anda harus melewatinya secara umum, yang akan Anda lakukan jika Anda selalu menggunakan STRAIGHT_JOIN.

Rekomendasi saya adalah untuk meninggalkan semua pertanyaan sebagai GABUNG biasa. Jika Anda menemukan bahwa satu kueri menggunakan paket kueri yang kurang optimal, saya sarankan terlebih dahulu untuk mencoba menulis ulang atau menyusun ulang kueri sedikit untuk melihat apakah pengoptimal kemudian akan memilih paket kueri yang lebih baik. Juga, setidaknya untuk innodb, pastikan bukan hanya statistik indeks Anda yang ketinggalan zaman (ANALISIS TABEL ). Itu dapat menyebabkan pengoptimal memilih rencana kueri yang buruk. Petunjuk pengoptimal umumnya harus menjadi pilihan terakhir Anda.

Alasan lain untuk tidak menggunakan petunjuk kueri adalah bahwa distribusi data Anda dapat berubah seiring waktu, atau selektivitas indeks Anda dapat berubah, dll. seiring pertumbuhan tabel Anda. Petunjuk kueri Anda yang saat ini optimal, dapat menjadi kurang optimal seiring waktu. Tetapi pengoptimal tidak akan dapat menyesuaikan rencana kueri karena petunjuk Anda yang sekarang sudah ketinggalan zaman. Anda tetap lebih fleksibel jika mengizinkan pengoptimal membuat keputusan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Duplikat, Salin, atau Cadangkan Tabel di MySQL, MariaDB, Oracle, PostgreSQL, DB2 dan SQLite dengan Create Table As SQL

  2. Menduplikasi tabel MySQL, indeks, dan data

  3. .NET Core 2.1 Identity mendapatkan semua pengguna dengan peran terkaitnya

  4. mySQL DataSource di Visual Studio 2012

  5. menghitung jumlah waktu tipe menggunakan sql