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

Sintaks pencarian teks lengkap MySQL alternatif

Sayangnya, menurut dokumentasi MySQL SELECT , "klausa HAVING diterapkan hampir terakhir, tepat sebelum item dikirim ke klien, tanpa pengoptimalan."

Perbedaannya adalah bahwa kueri pertama akan menggunakan indeks teks lengkap untuk menghitung relevansi hanya untuk baris yang memiliki 'Bob' di name . Kueri kedua akan menghitung relevansi untuk semua baris, lalu buang sebagian besar (mungkin setelah menyortir seluruh tabel). Oleh karena itu, kueri kedua secara signifikan lebih lambat. Bahkan jika Anda memasukkan klausa ORDER BY ke kueri pertama, itu masih akan lebih cepat daripada menggunakan HAVING:

SELECT name, MATCH(name) AGAINST('Bob') AS relevance
FROM users
WHERE MATCH(name) AGAINST('Bob')
ORDER BY relevance DESC

Secara umum, "jangan gunakan HAVING untuk item yang seharusnya ada di klausa WHERE."




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Melarikan diri dari kutipan tunggal dalam PHP saat memasukkan ke MySQL

  2. Apakah lebih cepat untuk menghubungkan/menggunakan MySQL di localhost daripada domain (bahkan jika domain diselesaikan ke komputer yang sama)?

  3. Tetapkan alias secara dinamis ke semua nama bidang dalam kueri msyql

  4. Perancangan Basis Data Untuk Mengembangkan Aplikasi Web 'Kuis' menggunakan PHP dan MySQL

  5. Dapatkan tanggal di antara dua tanggal