Kỹ thuật FULLTEXT Search – Tối ưu tìm kiếm trong Mysql



Bài viết này mình chia sẻ về kỹ thuật full-text search trong mysql. Đây là một trong những kỹ thuật tối ưu tốt nhất khi bạn thực hiện query tìm kiếm dữ liệu trong mysql

Full-text search trong mysql là gì?

Full-Text Search trong Mysql là kỹ thuật giúp cho users chạy một câu query gần giống nhất với từ khóa bạn cần search. Bạn hiểu đơn giản nó tương tự như câu lệnh truy vấn Like ‘%text%’. Tuy nhiên việc sử dụng Full-Text Search lại nhanh hơn rất nhiều lần so với việc bạn sử dụng câu lệnh truy vấn Like. Trước khi thực hiện Full-Text Search, bạn phải tạo một Full-Text Index trên table đó. Một Full-Text Index có thể bao gồm nhiều cột mà bạn mong muốn tìm kiếm.

Một số lưu ý bạn cần biết khi sử dụng Full-Text Search

– Full-Text là một kiểu index trong Mysql. Bạn có thể tìm kiểu thêm về kỹ thuật đánh index trong Mysql thì sẽ hiểu rõ hơn

– Cả 2 loại InnoDB vả MyISAM trong Mysql đều sử dụng Full-Text. Đây là 2 kiểu storage trong Mysql

– Full-Text Index được sử dụng cho duy nhất Varchar, Char và Text

Tạo Full-Text Index và sử dụng nó

Tạo Full-Text Index

Nếu tạo mới table bạn sử dụng Fulltext(column1,column2,..)

Nếu bạn sửa table

Sử dụng Full-Text Index

Để sử dụng search Full-Text Index, bạn sử dụng cú pháp như sau

Ví dụ thực tế về Full-Text Index

Ví dụng mình có một bảng users hơn 1 triệu bản ghi gồm các trường id, name, objectguid, username, email, email_verified_at, password, timestamps

Mình tạo Full-Text Index cho cột name. Khi mình sử dụng truy vấn like thì kết quả nhận được kết quả bên dưới

Khi mình sử dụng Full-text search thì kết quả nhận được

 

Bạn có thể thấy sử dụng Fulltext index search chỉ mất 0.01s trong khi đó bạn sử dụng truy vấn Like mất tới 0.82s

 

 

 

Bình luận

Bài viết cùng chuyên mục