我在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
查询没有任何改进。
答案 0 :(得分:0)
我的建议是不要使用select *
。而不是使用select *
使用select pdd_id, vin,time, cmd, data
。这肯定会减少您的执行时间。