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

MySQL 5.6 InnoDB Tìm kiếm toàn văn bản

Chưa bao giờ sử dụng Sphinx, nhưng đã thử MySQL 5.6 FTS trên bảng Innodb với khoảng 170 nghìn hàng. Tạo chỉ mục FTS trên cột tên (chứa tất cả tên của một người). Để tìm một từ ở bất kỳ vị trí nào của chuỗi MATCH(name) AGAINST("+word*") IN BOOLEAN MODE hoạt động nhanh hơn rất nhiều (trong trường hợp của tôi là 2-3 lần) so với việc sử dụng name LIKE "word%" OR name LIKE "% word" . Tuy nhiên, khi thực hiện các phép nối, hãy kiểm tra GIẢI THÍCH để xem chỉ số FTS có thực sự được sử dụng hay không. Có vẻ như trình tối ưu hóa MySQL không giỏi trong việc đoán khi nào nên sử dụng chỉ mục FTS.



  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 index_length có tính bằng byte không?

  2. Đầu vào cột bị bôi trơn trong MySQL Workbench

  3. Cách thích hợp để hỏi nếu mysql_num_rows trong PHP

  4. Vấn đề truy vấn Mysql sử dụng LIKE và dấu nháy đơn

  5. MySQL:Lỗi khi thả cơ sở dữ liệu (errno 13; errno 17; errno 39)