Vì vậy, đây là một bảng rất đơn giản 'tbl':Tại sao truy vấn MySQL đơn giản này lại quá chậm?
+---------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------------+------+-----+---------+----------------+
| val | varchar(45) | YES | MUL | NULL | |
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
+---------+---------------------+------+-----+---------+----------------+
Và chỉ số cho nó:
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| tbl | 0 | PRIMARY | 1 | id | A | 201826018 | NULL | NULL | | BTREE | |
| tbl | 1 | val | 1 | val | A | 881336 | NULL | NULL | YES | BTREE | |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
Tôi đang cố gắng này đơn giản chọn:
select val from tbl where val = 'iii';
kết quả: 86.208 các hàng trong tập hợp (0,08 giây)
Nhưng khi tôi muốn sửa đổi một chút:
select id, val from tbl where val = 'iii';
kết quả là: 86.208 hàng trong set (47,30 giây)
tôi có quyền chỉ số trên coumn rằng nơi điểm đến, tất cả Tôi đang thay đổi là các hàng kết quả đại diện. Tại sao có sự chậm trễ đáng sợ như vậy? (Tôi phải nói rằng tôi không thể tái tạo sự chậm trễ này mỗi khi tôi muốn: ngay cả sau khi 'đặt lại bộ nhớ cache truy vấn' hoặc thiết lập 'query_cache_type = off' lệnh nó có thể được thực hiện một cách nhanh chóng).
Bạn có thể thử chạy 'EXPLAIN' nhưng nghi ngờ rằng đây là vấn đề liên quan đến máy chủ. –
Tại sao bạn chọn 86 nghìn trường và làm điều đó trong hai cột? Tôi nghĩ rằng vấn đề ở đây là logic của truy vấn:/Có lẽ bạn nên chia sẻ những gì bạn đang đạt được? –
Động cơ ?, hãy thử chỉ mục văn bản đầy đủ – jcho360