-1
我有大約500萬行以下結構的表:慢MySQL的選擇與其中PK> X
CREATE TABLE `books` (
`asin` char(10) CHARACTER SET latin1 NOT NULL,
`title` varchar(512) NOT NULL,
...other fields...
PRIMARY KEY (`asin`),
KEY `lang` (`lang`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
我想上的所有運行的腳本,爲了這個,我用「選擇*從asin> X限制10000的書籍中記住最後一個PK。
我預計這個查詢速度非常快,因爲我正在查詢PK,但是現在查詢花費了將近1分鐘(開始時效果更好),性能正在慢慢下降。爲什麼會發生?
解釋例如:
mysql> explain select * from books where asin > 'B000OT86OY' limit 10000;
+----+-------------+-------+-------+---------------+---------+---------+------+---------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+---------+---------+------+---------+-------------+
| 1 | SIMPLE | books | range | PRIMARY | PRIMARY | 10 | NULL | 4670633 | Using where |
+----+-------------+-------+-------+---------------+---------+---------+------+---------+-------------+
返回多少行? – ad4s
@ ad4s 10000每次 – Bob
任何人都請解釋爲什麼這可能是downvoted? – Bob