gpt4 book ai didi

MySQL 性能 : letting a UNIQUE field generate an error or manually checking it

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

关于对性能影响的理论问题。

我表中的一个字段是唯一的。例如,Users 表中的 email_address。

什么对性能影响较小?尝试添加现有的电子邮件地址并收到错误,或者在电子邮件字段中进行搜索?

最佳答案

UNIQUE 字段可能会更快。

如果您告诉 MySQL 某个字段是唯一的,它可能会执行一些优化。

此外,如果您想要插入不在表中的记录,您可能会遇到一些并发问题。假设有两个人试图用同一个电子邮件地址注册。现在,如果你执行唯一性检查自己,像这样:

bool exists = userAlreadyExists(email);

if (exists)
showWarning();
else
insertUser(email);

可能会发生如下情况:

User 1 executes userAlreadyExists("foo@example.com") // returns false
User 2 executes userAlreadyExists("foo@example.com") // returns false

User 1 executes insertUser("foo@example.com")
User 2 executes insertUser("foo@example.com") // which is now a duplicate

如果让MySQL进行唯一性检查,以上情况就不会发生。

关于MySQL 性能 : letting a UNIQUE field generate an error or manually checking it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17996945/

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