gpt4 book ai didi

mysql - 将此查询分成批处理

转载 作者:行者123 更新时间:2023-11-29 14:35:53 27 4
gpt4 key购买 nike

我有一个MySQL表contacts,其结构如下

+--------------+----------+------+-----+---------+----------------+| Field        | Type     | Null | Key | Default | Extra          |+--------------+----------+------+-----+---------+----------------+| id           | int(11)  | NO   | PRI | NULL    | auto_increment || contactee_id | int(11)  | NO   | MUL | 0       |                || contacter_id | int(11)  | NO   | MUL | 0       |                |+--------------+----------+------+-----+---------+----------------+

contactee_id 和 contacter_id 都是 id,它们共同定义了两个用户之间的关系。为了计算用户的关系计数,我有以下查询

INSERT INTO followers (id, followers)    SELECT contactee_id, 1      FROM contacts      ON DUPLICATE KEY       UPDATE followers = followers + 1

此查询的问题是它锁定 contacts 表的时间太长(超过 16 分钟)。我想分批完成,这样SQL就不会锁定联系人表太久。我想到的方法不多,但都需要锁定整个表。有没有办法做到这一点?

最佳答案

如果您只想计算关系的数量,请使用计数和分组依据,例如

SELECT contactee_id,count(contacter_id) FROM contacts group by contactee_id;

这将为您提供所有 contactee_id 以及每个联系人的 contacter_id 数量

关于mysql - 将此查询分成批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9062371/

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