相关疑难解决方法(0)

"INSERT IGNORE"vs"INSERT ... ON DUPLICATE KEY UPDATE"

在执行INSERT包含许多行的语句时,我想跳过可能导致失败的重复条目.经过一些研究,我的选择似乎是使用:

  • ON DUPLICATE KEY UPDATE 这意味着需要花费一些不必要的更新,或者
  • INSERT IGNORE 这意味着邀请其他类型的未能在未经宣布的情况下失败.

我对这些假设是对的吗?简单地跳过可能导致重复的行并继续执行其他行的最佳方法是什么?

mysql insert

820
推荐指数
9
解决办法
82万
查看次数

如何在MySQL中"插入,如果不存在"?

我开始使用谷歌搜索,发现这篇文章讨论了互斥表.

我有一张约有1400万条记录的表格.如果我想以相同的格式添加更多数据,有没有办法确保我想要插入的记录不存在而不使用一对查询(即,一个查询要检查,一个要插入是结果集是空)?

unique对某个字段的约束是否保证insert如果它已经存在则会失败?

似乎只有一个约束,当我通过php发出插入时,脚本呱呱叫.

php mysql sql performance primary-key

781
推荐指数
9
解决办法
66万
查看次数

"插入忽略"vs"选择并插入"

我想写一个程序向表中添加新项.这个项目有一个唯一的密钥name,它可以由100个线程中的一个创建,所以我需要确保它只插入一次.

我有两个想法:

  1. 使用 insert ignore

  2. 如果没有返回的行,则从数据库中获取它select然后insert再到表.

哪个选项更好?有更优越的想法吗?

mysql database optimization performance insert

9
推荐指数
2
解决办法
4901
查看次数

是否插入新数据库条目比检查条目是否存在更快?

我曾经被告知,运行插入并让插入失败比检查数据库条目是否存在然后插入(如果它丢失)更快.

我还被告知,大多数数据库都经过大量优化,无法读取阅读而不是写入,因此快速检查不会比慢速插入快吗?

这是预期碰撞次数的问题吗?(IE只有在条目已经存在的可能性很小的情况下插入才会更快.)它是否依赖于我正在运行的数据库类型?就此而言,有一种方法会不断向我的错误日志中添加插入错误,这是不好的做法吗?

谢谢.

mysql sql sql-server oracle database-optimization

7
推荐指数
1
解决办法
972
查看次数

当不允许重复时,MySQL多次插入.

我有一个有3列的表.每个都有一个独特的索引.

我想一次做多个插入(300个记录弹出).当出现重复条目​​时,它会完全取消插入.这意味着如果300中的1个是重复的,则不会插入任何一个.

有没有解决的办法?

mysql insert duplicates

6
推荐指数
1
解决办法
1208
查看次数