gpt4 book ai didi

MySQL - 更新 - 更快的解决方案?

转载 作者:太空宇宙 更新时间:2023-11-03 11:57:00 24 4
gpt4 key购买 nike

我想加速一些脚本,所以我的问题是:
是否有更快的可用解决方案?

uid 只是添加到临时表中的 ID。
之后,它使用给定的 uid 更新原始表。

引擎是 InnoDB,MariaDB 10.0.19。

约 400 个条目大约需要 20 秒。

CREATE TEMPORARY TABLE cleanup_users AS (
SELECT uid FROM users
WHERE FROM_UNIXTIME(last_connect) <= DATE_SUB(NOW(), INTERVAL 2 MONTH)
AND activity <= 20 AND hide != 1
);
UPDATE users SET hide = 1 WHERE uid IN (
SELECT * FROM cleanup_users
);
DROP TABLE IF EXISTS cleanup_users;

最佳答案

UPDATE users SET hide = 1 WHERE last_connect <= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 2 MONTH)) AND activity <= 20 AND hide != 1

不要在 where 子句中对列使用函数并添加覆盖索引以加快速度。

ALTER TABLE users ADD INDEX(last_connect,activity,hide);

关于MySQL - 更新 - 更快的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31962083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com