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

Mana yang lebih cepat — INSTR atau LIKE?

Pencarian FULLTEXT benar-benar akan menjadi lebih cepat, seperti yang dicatat kibibu dalam komentar di atas.

Namun :

mysql> select COUNT(ID) FROM table WHERE INSTR(Name,'search') > 0;
+-----------+
| COUNT(ID) |
+-----------+
|     40735 | 
+-----------+
1 row in set (5.54 sec)

mysql> select COUNT(ID) FROM table WHERE Name LIKE '%search%';
+-----------+
| COUNT(ID) |
+-----------+
|     40735 | 
+-----------+
1 row in set (5.54 sec)

Dalam pengujian saya, mereka melakukan persis sama. Keduanya tidak peka huruf besar/kecil, dan umumnya melakukan pemindaian tabel penuh, hal yang tidak boleh dilakukan saat menangani MySQL berkinerja tinggi.

Kecuali Anda melakukan pencarian awalan pada kolom yang diindeks:

mysql> select COUNT(ID) FROM table WHERE Name LIKE 'search%';
+-----------+
| COUNT(ID) |
+-----------+
|         7 | 
+-----------+
1 row in set (3.88 sec)

Dalam hal ini, LIKE dengan hanya sufiks wildcard jauh lebih cepat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tanggal Java SQL mati 1 hari

  2. Bagaimana Anda mengubah jenis pemeriksaan untuk kolom MySQL?

  3. Cara memperbarui MySQL secara OTOMATIS setelah bidang stempel waktu berakhir

  4. kueri pemilihan mysql dalam array serial

  5. Menanyakan hal-hal di dekat geolokasi?