mysql中什么是选择引擎_mysql引擎如何选择

有一张表用来存温度信息用于页面展示折线图用

结构如下

CREATE TABLE `temp` (

`id` varchar(40) NOT NULL,

`duuid` varchar(40) DEFAULT NULL,

`temp` int(11) DEFAULT NULL,

`recordTime` datetime DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `duuid` (`duuid`) USING BTREE

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

duuid是设备的uuid,

temp是温度值

recordTime是记录时间

该数据是每隔30min通过事件和存储过程将设备实时状态表的温度信息扫描到该表里

设备最大有65025,也就是每到30min就会插入65025条数据

数据保存时间为30天

也就是数据库里的数据量最大有93636000条

查询语句如下:

SELECT duuid, temp, recordTime from temp WHERE duuid = 'xxx' AND recordTime BETWEEN '2018-11-01 00:00:00' AND '2018-12-01 00:00:00' ORDER BY recordTime;

直接查询30天的数据,1440条

使用innodb引擎的情况下

就我的开发机子查询时间在23s左右

加联合索引(duuid,recordTime)后查询时间在15s左右

MyISAM引擎在3s左右

但是就目前我这个需求,用MyISAM可不可行?

或者,在不分表的情况下有没有更加优化的方案?

还有删除的效率实在是太低了

DELETE from temp WHERE recordTime < 'xxx'

执行下来要111分钟,量大概在312w,每天执行一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值