gpt4 book ai didi

java - 在 mysql 中,依赖唯一性约束或手动检查该行是否已经存在是明智的吗?

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

我有一张 table :

userId | subject 

对两者组合具有唯一性约束。

现在我每隔几分钟就向这个表写入数千行。数据流来自队列,它可能会重复。但是,我必须确保表中只有一个 userId、subject 的唯一组合。

目前我依赖于 mysql 的唯一性约束,它作为异常抛出。

另一种方法是运行 SELECT count(*) 查询来检查该行是否已经存在,然后在需要时跳过它。

因为我想平均每秒写 4 行,这是可取的。

编程语言:Java

编辑:

以防万一,我不清楚这里的问题是,就性能而言,是依赖大量 MYSQL 抛出异常更好,还是在插入操作之前运行选择查询更好。

我认为选择查询的 CPU/IO 密集度低于 INSERT 查询。如果我运行太多的 INSERTS 不会创建很多锁吗?

最佳答案

MySQL 是 ACID 并采用事务锁定,因此依赖其唯一性约束是非常标准的。请注意,您可以通过 PRIMARY KEY 或 UNIQUE KEY 执行此操作(但如果可以,请选择前者)。

关于java - 在 mysql 中,依赖唯一性约束或手动检查该行是否已经存在是明智的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29757459/

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