Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cái nào nhanh hơn - INSTR hay LIKE?

Các tìm kiếm FULLTEXT hoàn toàn sẽ nhanh hơn, như kibibu đã lưu ý trong các nhận xét ở trên.

Tuy nhiên :

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)

Trong các thử nghiệm của tôi, chúng hoạt động hoàn toàn giống nhau. Cả hai đều không phân biệt chữ hoa chữ thường và thường thực hiện quét toàn bảng, một điều không nên khi xử lý MySQL hiệu suất cao.

Trừ khi bạn đang thực hiện tìm kiếm tiền tố trên cột được lập chỉ mục:

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

Trong trường hợp đó, LIKE chỉ có ký tự đại diện hậu tố sẽ nhanh hơn nhiều.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Quyền truy cập bị từ chối đối với người dùng '' @ 'localhost' (sử dụng mật khẩu:KHÔNG)

  2. Tìm kiếm địa lý (Khoảng cách) trong PHP / MySQL (Hiệu suất)

  3. MySQL:sử dụng lại tự động tăng trong khi chèn

  4. Nhập cơ sở dữ liệu sang MySQL hoặc MariaDB

  5. Cập nhật phiên bản MySQL từ 5.1 lên 5.5 trong CentOS 6.2