如何在mysql中更快地使我的选择查询?

时间:2013-04-11 07:32:24

标签: mysql select optimization

我在mysql中有一个表:

CREATE TABLE `pdd_data` (
    `pdd_id` INT(16) NOT NULL primary key auto_increment,
    `vin` varchar(32) NOT NULL,
    `time` TIMESTAMP NOT NULL,
    `cmd` varchar(16) NOT NULL,
    `data` varchar(128) NOT NULL
 )ENGINE=InnoDB DEFAULT CHARSET=utf8;

我将1,000,000条记录插入pdd_data,我将来会频繁使用查询,如下所示:

select * from pdd_data where cmd = 4599;
select * from pdd_data where vin = 400;
select * from pdd_data where vin = 400 and cmd = 4599;

目前,查询时间约为1.20秒~1.90秒。任何人都可以给我一些关于如何更快地进行此查询的建议吗?

p.s。我使用索引创建一个表:

CREATE TABLE `pdd_data1` (
    `pdd_id` INT(16) NOT NULL primary key auto_increment,
    `vin` varchar(32) NOT NULL,
    `time` TIMESTAMP NOT NULL,
    `cmd` varchar(16) NOT NULL,
    `data` varchar(128) NOT NULL,
    index idx_vin_cmd (vin(32), cmd(16))
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

select查询没有任何改进。

1 个答案:

答案 0 :(得分:0)

我的建议是不要使用select *。而不是使用select *使用select pdd_id, vin,time, cmd, data。这肯定会减少您的执行时间。