作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在 MYSQL (Amazon RDS) 中运行多表更新,但速度非常慢。
我想做什么?
根据 1 小时的时间范围删除所有重复的行。
下面我创建了一个临时表来识别表中的重复行。此查询将在 2 秒内运行。
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
CREATE TEMPORARY TABLE tmpIds (id int primary key);
INSERT into tmpIds
SELECT distinct
d.id
FROM api d INNER JOIN api orig
on d.domain_id = orig.domain_id and d.user_id = orig.user_id
WHERE
orig.created_at < d.created_at
AND d.created_at <= DATE_ADD(orig.created_at, Interval 1 hour)
AND d.type = 'api/check-end'
AND d.created_at >= '2016-08-01';
SET TRANSACTION ISOLATION LEVEL READ COMMITTED ;
问题是 UPDATE 查询在生产服务器上运行需要很长时间。它还锁定 api 表。
SET @TRIGGER_DISABLED = 1;
UPDATE
api
SET
deleted_at = now()
WHERE type = 'api/check-end' AND created_at >= '2016-08-01'
AND id IN (SELECT id FROM tmpIds);
SET @TRIGGER_DISABLED = 0;
我也尝试过这个版本:
SET @TRIGGER_DISABLED = 1;
UPDATE
api a,
tmpIds ti
SET
a.deleted_at = now()
WHERE
type = 'api/check-end' AND created_at >= '2016-08-01' AND a.domain_id < 10 AND a.id = ti.id;
SET @TRIGGER_DISABLED = 0;
统计
最佳答案
问题在于以下语句:
SET @TRIGGER_DISABLED = 1;
没有禁用触发器。我必须删除 api 表上的 UPDATE 触发器,并且 UPDATE 在 1.3 秒内运行。
有关运行查询时禁用触发器的最佳方法有什么帮助吗?
关于MYSQL多表更新极慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40564983/
我正在寻找绘制极坐标数据的替代方法。我需要实现像 this 这样的图表具有动态选项,例如 this . 非常感谢您的帮助! 最佳答案 我个人需要这些: Highcharts JS canvasXpre
我是一名优秀的程序员,十分优秀!