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

Apakah urutan tabel dalam gabungan langsung, tanpa arahan petunjuk, memengaruhi kinerja?

Jawaban atas pertanyaan Anda - Ya, Urutan meja membuat perbedaan dalam bergabung.

Anda juga dapat memberi tahu pengoptimal tentang rencana eksekusi.

Petunjuk ORDERED menyebabkan Oracle menggabungkan tabel sesuai urutan kemunculannya dalam klausa FROM.

Misalnya, pernyataan ini menggabungkan tabel TAB1 ke tabel TAB2 dan kemudian menggabungkan hasilnya ke tabel TAB3:

 SELECT /*+ ORDERED */ TAB1.COL1, TAB2.COL2, TAB3.COL3
     FROM TAB1, TAB2, TAB3
    WHERE TAB1.COL1 = TAB2.COL1
         AND TAB2.COL1 = TAB3.COL1;

Jika Anda menghilangkan petunjuk ORDERED dari pernyataan SQL yang melakukan penggabungan, pengoptimal memilih urutan untuk bergabung dengan tabel. Anda mungkin ingin menggunakan petunjuk ORDERED untuk menentukan urutan gabungan jika Anda mengetahui sesuatu tentang jumlah baris yang dipilih dari setiap tabel yang tidak diketahui oleh pengoptimal. Informasi tersebut akan memungkinkan Anda memilih tabel dalam dan luar lebih baik daripada yang bisa dilakukan pengoptimal.

Biasanya, jika Anda menganalisis tabel, pengoptimal memilih paket bintang yang efisien. Anda juga dapat menggunakan petunjuk untuk meningkatkan rencana. Metode yang paling tepat adalah mengurutkan tabel dalam klausa FROM dalam urutan kunci dalam indeks, dengan tabel besar terakhir. Kemudian gunakan petunjuk berikut:

/*+ ORDERED USE_NL(FACTS) INDEX(FACTS FACT_CONCAT) */


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. server obrolan:apa cara terbaik (dioptimalkan) untuk menyimpan log percakapan

  2. MySQL:pesan oleh dalam grup oleh

  3. Apakah ada daftar tipe data dalam prosedur tersimpan MySQL, atau cara untuk menirunya?

  4. Bantuan dengan kinerja:SUBQUERY vs JOIN

  5. Bagaimana Anda menyegarkan file konfigurasi MySQL tanpa memulai ulang?