Không thể sử dụng lập chỉ mục thông thường để cải thiện truy vấn đó. Các chỉ mục MySQL là cây B, có nghĩa là chúng có thể tìm thấy tiền tố của cột được lập chỉ mục rất nhanh chóng. Nhưng vì LIKE
của bạn truy vấn có %
ở đầu, không có tiền tố duy nhất để tìm kiếm. Vì vậy, mọi hàng phải được quét để khớp với mẫu.
Tuy nhiên, MySQL cũng hỗ trợ tìm kiếm toàn văn bản. Điều này tạo ra một chỉ mục của tất cả các từ trong cột và nó có thể tìm thấy những từ này một cách nhanh chóng. Xem tài liệu để biết chi tiết.
Nếu bạn sử dụng LIMIT 10
, nó sẽ ngừng quét ngay khi tìm thấy 10 hàng đầu tiên thỏa mãn các điều kiện. Trừ khi bạn cũng sử dụng ORDER BY
- sau đó nó phải tìm tất cả các hàng để nó có thể sắp xếp chúng trước khi chọn 10.