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

Apa yang harus diindeks untuk meningkatkan kinerja?

Secara umum, filter pemilihan dapat menggunakan indeks pada user_id atau activity_type_id atau keduanya (dalam salah satu urutan).

Operasi pemesanan mungkin dapat menggunakan filter pada created_at .

Kemungkinan untuk kueri ini, indeks gabungan pada (user_id, activity_type_id) akan memberikan hasil terbaik, dengan asumsi bahwa MySQL benar-benar dapat memanfaatkannya. Jika gagal, kemungkinan lebih baik untuk mengindeks user_id dari activity_type_id karena kemungkinan akan memberikan selektivitas yang lebih baik. Salah satu alasan untuk berpikir bahwa akan ada 4 subbagian indeks untuk dipindai jika menggunakan indeks pada activity_type_id , dibandingkan dengan hanya satu subbagian untuk dipindai jika menggunakan indeks pada user_id sendirian.

Mencoba mengandalkan indeks untuk urutan pengurutan kemungkinan berarti pemindaian tabel penuh, jadi kemungkinan kecil itu bermanfaat. Saya tidak akan membuat indeks di created_at untuk mendukung permintaan ini; mungkin ada pertanyaan lain yang bermanfaat.



  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 mengembalikan semua baris ketika bidang =0

  2. Menjalankan mysql_upgrade di Docker?

  3. Deteksi Pengguna yang Melihat Halaman Web yang Sama, atau URL

  4. Memicu program Java berdasarkan pembaruan basis data dan interval waktu

  5. beberapa kueri MySQL ke satu sisipan