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

Bagaimana cara meningkatkan Query MySQL ini menggunakan join?

Anda memiliki left join venues , tetapi Anda memiliki ketentuan di where klausa di venues yang tergabung baris, jadi hanya baris yang digabungkan yang akan dikembalikan. Namun, itu masalah sampingan - baca terus mengapa Anda tidak perlu bergabung sama sekali.

Selanjutnya, jika kotanya vancouver , tidak perlu juga tes untuk negara atau negara bagian.

Terakhir, jika Anda mencoba mencari "berapa banyak acara mendatang di Vancouver", Anda tidak perlu bergabung, karena id tempat adalah konstan!

Coba ini:

select count(*) as event_count
from events
where venueid = (select id from venues where city = 'vancouver')
and startdate > curdate() 
and te_id != 0

Mysql akan menggunakan indeks pada venueid tanpa Anda harus menggunakan petunjuk. Jika tidak, jalankan ini:

analyze events

yang akan memperbarui statistik distribusi data di kolom yang diindeks. Perhatikan bahwa jika banyak acara Anda berada di Vancouver, akan lebih efisien untuk tidak gunakan indeks (karena sebagian besar baris tetap harus diakses).



  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 - Bagaimana cara menjalankan beberapa kueri pembaruan dalam satu baris?

  2. Perbarui beberapa baris dalam satu kueri MySQL

  3. Pencarian Kedekatan

  4. Menangani integritas basis data

  5. kesalahan pembatas mysql