Bạn không có bất kỳ chỉ mục nào ngoài khóa chính. Bạn cần tạo chỉ mục trên các trường mà bạn sử dụng trong câu lệnh WHERE của mình. Nếu bạn chỉ cần lập chỉ mục 1 trường hoặc kết hợp nhiều trường phụ thuộc vào các CHỌN khác mà bạn sẽ chạy trên bảng đó.
Hãy nhớ rằng REGEXP
hoàn toàn không thể sử dụng các chỉ mục, LIKE
chỉ có thể sử dụng chỉ mục khi nó không bắt đầu bằng ký tự đại diện (vì vậy LIKE 'a%'
có thể sử dụng chỉ mục, nhưng LIKE '%a'
không thể), lớn hơn / nhỏ hơn (<>) thường cũng không sử dụng chỉ mục.
Vì vậy, bạn chỉ còn lại mã code
và check
lĩnh vực. Tôi cho rằng nhiều hàng sẽ có cùng giá trị cho check
, vì vậy tôi sẽ bắt đầu lập chỉ mục bằng mã code
đồng ruộng. Chỉ mục đa trường chỉ có thể được sử dụng theo thứ tự mà chúng được xác định ...
Hãy tưởng tượng chỉ mục được tạo cho các trường code, check
. Chỉ mục này có thể được sử dụng trong truy vấn của bạn (trong đó mệnh đề WHERE chứa cả hai trường), cũng trong truy vấn chỉ có mã code
nhưng không có trong truy vấn chỉ có check
trường.
ORDER BY id
có quan trọng không ? Nếu không, hãy bỏ nó đi, nó sẽ ngăn việc sắp xếp vượt qua và truy vấn của bạn sẽ kết thúc nhanh hơn.