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

Chỉ mục đầy đủ là gì và khi nào tôi nên sử dụng nó?

Trong cơ sở dữ liệu, các chỉ số thường được sử dụng để nâng cao hiệu suất khi tìm kiếm thứ gì đó được xác định trong mệnh đề where của bạn. Tuy nhiên, khi nói đến việc lọc một số văn bản, ví dụ:bằng cách sử dụng một cái gì đó như WHERE TextColumn LIKE '%searchstring%' sau đó tìm kiếm chậm, bởi vì cách các chỉ mục cơ sở dữ liệu thông thường hoạt động được tối ưu hóa cho các kết quả phù hợp với 'toàn bộ nội dung' của một cột chứ không chỉ một phần của nó. Cụ thể, tìm kiếm LIKE bao gồm các ký tự đại diện không thể sử dụng bất kỳ loại chỉ mục nào.

Như đã đề cập trong nhận xét bên dưới, MySQL cần MATCH () ... AGAINST cú pháp để tìm kiếm trong một chỉ mục văn bản đầy đủ; BTW điều này thay đổi tùy thuộc vào nhà cung cấp cơ sở dữ liệu. Trong MS SQL, bạn có thể sử dụng CONTAINS vì vậy hãy ghi nhớ điều này khi bạn cũng định hỗ trợ các cơ sở dữ liệu khác.

Các chỉ mục đầy đủ văn bản hoạt động tốt hơn đối với văn bản thông thường, vì chúng được tối ưu hóa cho các loại cột này. Rất đơn giản:Họ chia văn bản thành các từ và tạo chỉ mục trên các từ chứ không phải toàn bộ văn bản. Điều này hoạt động nhanh hơn rất nhiều cho các tìm kiếm văn bản khi tìm các từ cụ thể.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn MySQL có thể chuyển hàng thành cột không?

  2. Làm cách nào để tạo cơ sở dữ liệu MySQL từ tệp kết xuất trong tập lệnh Mong đợi / TCL?

  3. mysqli_stmt ::bind_param () [mysqli-stmt.bind-param]:Số biến không khớp với số tham số

  4. Cấu trúc lại một cơ sở dữ liệu xấu với các vòng lặp PHP hoặc MySQL

  5. Cách ẩn thông báo lỗi