Tôi có một bảng có kích thước khiêm tốn, 277k bản ghi tại thời điểm này, mà tôi đang cố gắng thực hiện tìm kiếm FULLTEXT
trên đó. Tìm kiếm có vẻ rất nhanh cho đến khi nó đến giai đoạn Gửi dữ liệu.MySQL "Gửi dữ liệu" khủng khiếp chậm
Bảng:
CREATE TABLE `sqinquiries_inquiry` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ts` datetime NOT NULL,
`names` longtext NOT NULL,
`emails` longtext NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `sqinquiries_inquiry_search` (`names`,`emails`)
) ENGINE=MyISAM AUTO_INCREMENT=305560 DEFAULT CHARSET=latin1
Các truy vấn:
SELECT * FROM `sqinquiries_inquiry` WHERE (
MATCH (`sqinquiries_inquiry`.`names`) AGAINST ('smith' IN BOOLEAN MODE) OR
MATCH (`sqinquiries_inquiry`.`emails`) AGAINST ('smith' IN BOOLEAN MODE)
) ORDER BY `sqinquiries_inquiry`.`id` DESC LIMIT 100
Các hồ sơ: (Tôi snipped ra thông tin dường như vô dụng)
+-------------------------+----------+
| Status | Duration |
+-------------------------+----------+
| preparing | 0.000014 |
| FULLTEXT initialization | 0.000015 |
| executing | 0.000004 |
| Sorting result | 0.000008 |
| Sending data | 2.247934 |
| end | 0.000011 |
| query end | 0.000003 |
+-------------------------+----------+
Các DESCRIBE
sẽ rất tốt, một đơn giản lót: Các Mô tả:
id: 1
select_type: SIMPLE
table: sqinquiries_inquiry
type: index
possible_keys: NULL
key: PRIMARY
key_len: 4
ref: NULL
rows: 100
Extra: Using where
Vì vậy, những gì tôi không hiểu được nơi 2.25 giây gửi dữ liệu sẽ đến từ đâu? Tôi thấy hiệu suất tương tự trong Python và trong giao diện điều khiển mysql
ứng dụng, cả hai kết nối với localhost
.
Cập nhật:
- mỗi comment yêu cầu kích thước hàng trung bình, đó là: 53,8485
- mỗi bình luận, đây là
DESCRIBE
trên.
lượng dữ liệu bạn đang truy xuất là bao nhiêu? nếu bạn không biết, hãy xem bảng thống kê và cho chúng tôi biết kích thước hàng trung bình. – longneck
Không chắc chắn làm thế nào để tìm ra kích thước hàng trung bình, vì vậy tôi ném đầu ra này lên: 'SELECT AVG (LENGTH (tên) + LENGTH (email) + LENGTH (id) + LENGTH (ts)) như avg_length từ sqinquiries_inquiry'. Nếu có cách nào tốt hơn, hãy cho tôi biết. –
Vấn đề là bạn không sử dụng 'FULLTEXT KEY'. Bạn có thể vui lòng đăng 'DESCRIBE'? – Quassnoi