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

Indeks MySQL untuk MIN dan MAX

SELECT MIN(b), MAX(b) FROM tbl WHERE a = 12;

cinta

INDEX(a, b)

kedua kolom, dalam urutan itu.

Kueri terlihat dalam indeks untuk a = 12 , ambil (a,b) pertama pasangkan untuk mendapatkan MIN(b) dan ambil pasangan terakhir untuk mendapatkan MAX(b) .

Pernyataan tentang "mengganti dengan konstanta" membingungkan karena terlalu jauh ke detail tentang bagaimana pertama kali mengetahui cara melakukan kueri (yang kebetulan mendapatkan min dan maks), kemudian melanjutkan untuk mengeksekusi apa yang tersisa dari kueri (tidak ada yang tersisa).

Secara umum, indeks optimal biasanya yang dimulai dengan semua WHERE kolom dibandingkan dengan konstanta dengan = . Setelah itu menjadi rumit, jadi izinkan saya memberikan tip lain:

Indeks "penutup" adalah indeks yang memiliki semua kolom yang disebutkan dalam SELECT (a dan b dalam contoh saya).

Maaf, sepertinya saya tidak lebih jelas dari manualnya.



  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 / MYSQL Tambahkan tombol ke kolom

  2. Menghitung total durasi waktu di MySQL

  3. apa perbedaan antara GROUP BY dan ORDER BY di sql

  4. pengecualian pointer nol ketika mencoba mengakses DatabaseHelper dalam database yang disalin dari aset ke data\data\

  5. kesalahan runtime:java.lang.ClassNotFoundException:com.mysql.jdbc.Driver