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ể.