1

我在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.20sec~1.90sec。谁能给我一些关于如何使这个查询更快的建议?

ps我使用索引创建了一个表:

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

4

1 回答 1

0

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

于 2015-03-19T09:37:35.733 回答