首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中插入唯一行的成本最低的方法?

在MySQL中插入唯一行的成本最低的方法?
EN

Stack Overflow用户
提问于 2012-04-14 11:52:03
回答 2查看 470关注 0票数 3

我有一个在唯一索引下定义了列的表。在向表中插入数据时,我当前不会检查匹配的行是否已经存在,而是让MySQL处理它。

这是首选的方法吗?我的意思是,我可以在insert之前添加一个SELECT来检查复制行,但从性能的角度看似乎会更昂贵,因为可能有5-10%的insert会触发一个复制。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-14 11:53:37

是的,就让MySQL自己解决吧。它已经知道下一个可能的值是什么,并且会比你更快地选择它。

您的select方法不仅会失败,还会涉及到服务器的两次往返,而不是一次。更不用说让服务器自己弄清楚了,这就给了它更多优化的机会。

票数 2
EN

Stack Overflow用户

发布于 2012-04-14 12:04:45

MySQL有一个非常有用的"ON DUPLICATE KEY“语法:

http://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10150840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档