mysql - 在 MySQL 中插入唯一行的最便宜的方法?

标签 mysql database

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

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

最佳答案

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

您的 select 方法不仅会失败,而且还涉及到服务器的两次往返,而不是一次。更不用说让服务器自行解决问题可以为其提供更多优化机会。

关于mysql - 在 MySQL 中插入唯一行的最便宜的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150840/

相关文章:

mysql - mongodb "all"在mysql数据库中实现的条件运算符

php - sql 中具有 'type' 列的每个日期的金额总和

mysql - 我怎样才能简化/提高这个 MySQL 查询的性能?

mysql - 构造多参数 MySQL 搜索查询

PHP 到 MySql - 只会写入一列,而不是多列

database - 当您希望对原始表的更改自动传播到汇总表时,最佳数据库设计/架构

mysql - 使用 phpmyadmin 导出/导入 mysql 数据库

ruby-on-rails - 将 Excel 电子表格中的数据提取到 Ruby 中的数据库中

c# - ERP会计年度交易表的单数据库VS多数据库?

php - 如何在 laravel 中按自定义时间格式排序?