我有一个非常简单的表,有两列,但有 450 万行。
CREATE TABLE `content_link` (
`category_id` mediumint(8) unsigned NOT NULL,
`content_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`content_id`,`category_id`),
KEY `content_id` (`content_id`,`category_id`)
) ENGINE=MyISAM;
当我运行一个简单的查询时:
SELECT
*
FROM
content_link
WHERE
category_id = '11';
mysql 在返回大约 10 行之前会占用 CPU 并需要 2-5 秒。数据非常均匀地分布在整个表中,并且我正在访问索引字段(我还分析/优化了表并且我从未更改表的内容),那么查询需要这么长时间的原因是什么?
编辑: 似乎navicat 在对我撒谎,而我的主键实际上并没有按正确的顺序键入,因为它正在向我显示表格。