Qt使用sqlite数据库,查询数据卡顿导致其他数据偶尔插入失败

    最近项目上面出现偶尔缺数据情况,在自己电脑上模拟没有出现此问题,拷贝程序到arm版进行测试,发现CPU占有率维持50%以上,通过逐步输出日志调试,定时查询数据时会卡顿3到4秒左右,通过优化查询语句让查询降低几百毫秒,CPU马上降到10%以内,同时放到现场测试不在出现缺数据情况。

有问题语句:

select DataTime from T_Data_2011 where DataTime > '%1' ORDER BY ID LIMIT 1

优化语句:

select DataTime from T_Data_2011 where DataTime > '%1' ORDER BY DataTime LIMIT 1

表格

CREATE TABLE T_Data_2011( ID INTEGER PRIMARY KEY AUTOINCREMENT, LHCode VARCHAR(10) NOT NULL, DataTime DATETIME NOT NULL, \

Rtd FLOAT, \

Flags VARCHAR(20)\

)

create index LHCode on T_Data_2011(LHCode);

create index DataTime on T_Data_2011(DataTime);
由于数据量已经达百万级别,通过主键ID查询很慢,改为索引字段既然就可以,一直以为主键自动建立索引,后来网上查询还有聚合索引和非聚合索引区别,查询数据速度还是有区别的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值