小编phi*_*kis的帖子

当表包含许多记录时,MySQL 查询不使用索引

我有一张桌子:

CREATE TABLE `p` (  
    `id` BIGINT(20) unsigned NOT NULL,  
    `rtime` DATETIME NOT NULL,  
    `d` INT(10) NOT NULL,  
    `n` INT(10) NOT NULL,  
    PRIMARY KEY (`rtime`,`id`,`d`) USING BTREE  
) ENGINE=MyISAM DEFAULT CHARSET=latin1;  
Run Code Online (Sandbox Code Playgroud)

我对此表运行的查询是:

SELECT id, d, SUM(n) 
FROM p 
WHERE rtime BETWEEN '2012-08-25' AND DATE(now()) 
GROUP BY id, d;
Run Code Online (Sandbox Code Playgroud)

explain在一个小表(2 条记录)上运行这个查询,它告诉我它将使用我的主键索引:

id  | select_type  | table | type   | possible_keys | key     | key_len | ref  | rows | Extra
1   | SIMPLE       | p     | range  | PRIMARY …
Run Code Online (Sandbox Code Playgroud)

mysql index

4
推荐指数
1
解决办法
1599
查看次数

标签 统计

index ×1

mysql ×1