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

Optimalkan kueri ORDER BY

Ada batasan seberapa banyak pengoptimalan yang dapat Anda lakukan pada klausa ORDER BY. Yang utama yang terkadang membantu adalah memiliki indeks pada kumpulan kolom yang benar dalam urutan yang benar. Jadi, untuk contoh Anda, indeks (tunggal, gabungan) pada:

average_price_per_month ASC, phone_price_guestimate DESC, contract_length ASC

mungkin membantu, tetapi pengoptimal mungkin masih memutuskan bahwa lebih baik menggunakan beberapa indeks lain untuk menangani istilah filter dalam kueri dan kemudian akan mengurutkan data yang dipilih sendiri. Perhatikan bahwa kecuali indeks menyediakan data dalam urutan terurut yang benar dan menggunakan indeks mempercepat kueri secara keseluruhan, maka pengoptimal tidak akan menggunakannya. Indeks hanya pada salah satu kolom yang akan diurutkan adalah manfaat terbatas bagi pengoptimal, dan biasanya pengoptimal tidak akan menggunakan indeks seperti itu.

Satu pertanyaan untuk dipertimbangkan:

  • Seberapa cepat kinerja kueri tanpa klausa ORDER BY.

Itu memberi Anda pengukuran yang sangat langsung dari biaya penyortiran. Anda menyebutkan 20 ms tanpa memesan dan 120 md dengan memesan, jadi ORDER BY cukup mahal. Pertanyaan berikutnya mungkin "Dapatkah Anda mengungguli jenisnya dalam aplikasi Anda?". Anda mungkin dapat melakukannya, tetapi paket sortir dalam DBMS biasanya dioptimalkan dengan cukup baik dan Anda mungkin harus bekerja keras untuk mengatasinya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP - Kesalahan fatal:Panggilan ke fungsi anggota bind_param()

  2. tulis hasil kueri sql ke file di mysql

  3. Cara menonaktifkan cache kueri dengan mysql.connector

  4. Desain database MySql untuk program kuis

  5. MYSQL pilih 2 baris acak dari setiap kategori