gpt4 book ai didi

mysql - 更新查询需要太长时间才能更新mysql中的大量数据

转载 作者:行者123 更新时间:2023-11-29 19:11:40 24 4
gpt4 key购买 nike

我正在尝试从另一个表更新 100000 多行数据,但需要的时间太长,超过 120 分钟,有什么方法可以加快此过程

我在做什么

我有两张 table

+-----------------+         +-----------------------------+
| tags | | items |
+-----------------+ +-----------------------------+
|id | unq | name | |id | tag_id | unq | detail |
+-----------------+ +-----------------------------+
| 1 | n1 | Name1 | | 1 | | n2 | detail2 |
| 2 | n2 | Name2 | | 2 | | n1 | detail1 |
| 3 | n3 | Name3 | | 3 | | n3 | detail3 |
| 4 | n4 | Name4 | | 4 | | n8 | detail8 |
| 5 | n5 | Name5 | | 5 | | n4 | detail4 |
| 6 | n6 | Name6 | | 6 | | n5 | detail5 |
| 7 | n7 | Name7 | | 7 | | n9 | detail9 |
| 8 | n8 | Name8 | | 8 | | n6 | detail6 |
|...| ... | ... | |...| | ... | ... |
+-----------------+ +-----------------------------+

我必须更新 items 表中代表 unq 列的 tag_id

我使用的这些查询

Query 1.

UPDATE `items`
INNER JOIN tags ON (tags.unq = items.unq)
SET items.tag_id = tags.id

-- -------------- and ---------------------

Query 2.

UPDATE `items` SET `tag_id`= (SELECT tags.id FROM tags WHERE tags.unq = items.unq Limit 1

我使用的两个查询都花费了太多时间

我想要的输出

+-----------------------------+
| items |
+-----------------------------+
|id | tag_id | unq | detail |
+-----------------------------+
| 1 | 2 | n2 | detail2 |
| 2 | 1 | n1 | detail1 |
| 3 | 3 | n3 | detail3 |
| 4 | 8 | n8 | detail8 |
| 5 | 4 | n4 | detail4 |
| 6 | 5 | n5 | detail5 |
| 7 | 9 | n9 | detail9 |
| 8 | 6 | n6 | detail6 |
|...| ... | ... | ... |
+-----------------------------+

最佳答案

您可以在单笔交易中执行以下技巧:
1.

RENAME items to items_old
  • 创建包含连接信息的新表
  • 创建表 items_temp AS
    选择 items.id 作为“id”,tags.id 作为“tag_id”,
    items.unq 为“unq”,items.detail 为“detail”
    FROM 标签 INNER JOIN items ON 标签.unq = items.unq

    如果您需要,您可以添加 autoinc 字段

    ALTER TABLE items MODIFY COLUMN id INT auto_increment
  • 将 items_temp 重命名为 items

  • 删除 items_old

  • 关于mysql - 更新查询需要太长时间才能更新mysql中的大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43030038/

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