Trả lời câu hỏi của bạn:
-
possible_keys
các chỉ số mà MySQL có thể muốn sử dụng và các khóakeys
các chỉ số MySQL có thực sự sử dụng không? Vâng cái này đúng rồi. -
Tại sao chỉ mục lại là
index_status_mit_spam
không được sử dụng? Trong truy vấn, các cột có cùng thứ tự như trong chỉ mục. SQL sử dụng thống kê trên các chỉ mục của bảng để xác định chỉ mục nào sẽ sử dụng. Thứ tự của các trường trong câu lệnh select KHÔNG có hiệu lực sử dụng chỉ mục nào. Thống kê xung quanh chỉ mục bao gồm thông tin như tính duy nhất của chỉ mục và những thứ khác. Các chỉ mục độc đáo hơn có thể sẽ được sử dụng. Đọc thêm về điều này tại đây: http ://dev.mysql.com/doc/innodb/1.1/en/innodb-other-changes-stosystem-estimation.html hoặc tại đây: http://dev.mysql .com / doc / refman / 5.0 / en // myisam-index-Statistics.html . Những yếu tố này xác định cách MySQL sẽ chọn một chỉ mục để sử dụng. Nó sẽ chỉ sử dụng MỘT chỉ mục . -
Tại sao chỉ mục lại là
index_datum
không được sử dụng choORDER BY
? MySQL sẽ chỉ sử dụng một chỉ mục chứ không phải hai trong khi truy vấn vì việc sử dụng chỉ mục thứ hai sẽ làm chậm truy vấn hơn nữa. Đọc một chỉ mục KHÔNG phải là đọc bảng. Điều này liên quan đến hiệu quả hoạt động của truy vấn. Đây là câu trả lời có thể giải thích một số khái niệm:https://dba.stackexchange.com/questions/18528/performance-difference-between-clustered-and-non-clustered-index/18531#18531 Hoặc Thêm mệnh đề giới hạn vào truy vấn MySQL làm chậm nó đáng kể Hoặc Chỉ mục MySQL và khi nào nên nhóm chúng . Những câu trả lời này có rất nhiều chi tiết sẽ giúp bạn hiểu Lập chỉ mục MySQL. -
Làm cách nào để tôi có thể tối ưu hóa chỉ mục bảng hoặc truy vấn của mình? (Truy vấn ở trên cần tối đa 3 giây để có khoảng một triệu mục nhập trong bảng). Vâng, có một tập tin ở đây có thể đang làm chậm bạn. Có thể bảng có quá nhiều chỉ mục và MySQL đang chọn sai.
Bạn cần hiểu rằng các chỉ mục tăng tốc độ đọc và làm chậm quá trình ghi vào bảng. Vì vậy, chỉ thêm các chỉ mục không phải lúc nào cũng là một ý kiến hay. Các câu trả lời và gợi ý ở trên sẽ giúp bạn có được sự hiểu biết vững chắc.