Câu trả lời ngắn gọn:
Chỉ mục tăng tốc độ SELECT
và làm chậm INSERT
'S.
Thông thường, tốt hơn là có các chỉ mục, vì chúng tăng tốc select
nhiều hơn chúng làm chậm insert
.
Vào một UPDATE
chỉ mục có thể tăng tốc mọi thứ tăng lên nếu một trường được lập chỉ mục được sử dụng trong WHERE
và làm chậm mọi thứ nếu bạn update
một trong các trường được lập chỉ mục.
Làm cách nào để bạn biết khi nào sử dụng chỉ mục
Thêm EXPLAIN
trước SELECT
của bạn tuyên bố.
Như vậy:
EXPLAIN SELECT * FROM table1
WHERE unindexfield1 > unindexedfield2
ORDER BY unindexedfield3
Sẽ cho bạn biết MySQL sẽ phải thực hiện bao nhiêu công việc trên mỗi trường chưa lập chỉ mục.
Sử dụng thông tin đó bạn có thể quyết định xem có đáng để thêm chỉ mục hay không.
Giải thích cũng có thể cho bạn biết liệu tốt hơn nên giảm và lập chỉ mục
EXPLAIN SELECT * FROM table1
WHERE indexedfield1 > indexedfield2
ORDER BY indexedfield3
Nếu rất ít hàng được chọn hoặc MySQL quyết định bỏ qua chỉ mục (nó thực hiện điều đó theo thời gian) thì bạn cũng có thể giảm chỉ mục, bởi vì nó là làm chậm insert
của bạn s nhưng không tăng tốc select
của bạn của.
Sau đó, một lần nữa, cũng có thể câu lệnh select của bạn không đủ thông minh.
(Xin lỗi vì sự phức tạp trong câu trả lời, tôi đã cố gắng làm cho nó đơn giản, nhưng không thành công).
Liên kết:
Chỉ mục MySQL - là gì các phương pháp hay nhất?