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

Indeks MySQL memperlambat permintaan

Tampaknya article_id adalah kunci utama untuk tabel artikel.

Karena Anda mengelompokkan menurut article_id, MySQL perlu mengembalikan catatan menurut kolom itu, untuk melakukan GROUP BY.

Anda dapat melihat bahwa tanpa indeks, ia memindai semua catatan di tabel artikel, tetapi setidaknya diurutkan berdasarkan article_id, jadi tidak diperlukan pengurutan yang lebih baru. Optimalisasi LIMIT bisa diterapkan di sini, karena sudah berurutan, baru bisa berhenti setelah mendapat lima baris.

Dalam kueri dengan indeks pada tag.name, alih-alih memindai seluruh tabel artikel, ini menggunakan indeks, tetapi terhadap tabel tag, dan mulai dari sana. Sayangnya, saat melakukan ini, catatan harus diurutkan berdasarkan article.article_id untuk melengkapi klausa GROUP BY. Pengoptimalan LIMIT tidak dapat diterapkan karena harus mengembalikan seluruh kumpulan hasil, lalu memesannya, untuk mendapatkan 5 baris pertama.

Dalam hal ini, MySQL hanya salah menebak.

Tanpa klausa LIMIT, saya rasa penggunaan indeks akan lebih cepat, yang mungkin seperti dugaan MySQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL | REGEXP VS Suka

  2. Bagaimana cara mengisi tabel dengan rentang tanggal?

  3. Bagaimana cara mengubah kode yang tidak dapat diedit/dihasilkan di netbeans

  4. Python Pandas to_sql, bagaimana cara membuat tabel dengan kunci utama?

  5. MySQL &NHibernate. Bagaimana cara memperbaiki kesalahan:Kolom 'ReservedWord' bukan milik tabel ReservedWords?