我有一个表,其中的列定义在唯一索引下。当向表中插入数据时,我目前不检查匹配行是否已经存在,而是让 MySQL 处理它。
这是首选方法吗?我的意思是,我可以在插入之前添加一个 SELECT 来检查是否有重复行,但从性能角度来看,这似乎会更昂贵,因为可能有 5-10% 的插入会触发重复行。
最佳答案
是的,让 MySQL 自己解决。它已经知道下一个可能的值是什么,并且会比您更快地选择它。
您的 select
方法不仅会失败,而且还涉及到服务器的两次往返,而不是一次。更不用说让服务器自行解决问题可以为其提供更多优化机会。
关于mysql - 在 MySQL 中插入唯一行的最便宜的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150840/