INSERT INTO stats.cps
(time_stamp,entries,cust_id)
select start_time, count(*) , c_id from gb.str
where start_time between '$DATE10' and '$DATE'
group by start_time, src_id
order by start_time ASC
我在远离数据库服务器的机器上进行了此查询,但start_time
不是索引,因此需要一段时间。我在性能图表上注意到它执行的时间有负载增加的峰值,正如预期的那样,当我停止正在执行查询的脚本时停止出现。
另一个应用程序在那些确切的时间出现了异常,但该应用程序使用了插入数据的gb.str
表而不是数据库。stats
该应用程序的开发人员认为此查询是其应用程序性能不佳的原因,但gb.str
我的假设不应该被锁定。我运行了很长的 SELECT 查询gb.str
以查看该应用程序是否受到性能影响,但它没有..
gb.str
查询也会在某种程度上锁定吗?10.0.22-MariaDB
所有表都是 MariaDB ( )附带的 TokuDB
我在 TokuDB wiki 上解释事务和并发的方式
第 3 方应用程序的插入需要更新键,并且它们可能恰好被该查询同时选择插入的某些行锁定。
在我的案例中,我解决它的方法是让查询在过去稍微运行一段时间,因此它不能与该应用程序(实际上添加数据)重合。