首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >大型MySQL表,带有主键检查的插入

大型MySQL表,带有主键检查的插入
EN

Database Administration用户
提问于 2014-10-22 14:43:33
回答 1查看 538关注 0票数 2

我有一个包含1200万行的表,我应该经常执行以下任务:

  1. 从某个地方(50行)获取搜索结果。每个结果都有一个作为md5哈希的键,并且表的PM构建在这个字段上。
  2. 检查当前存储的行。
  3. 存储所有其他行

问题是什么是执行步骤2-3的最佳方式。我使用PHP和Doctrine,所以并不是所有复杂的查询都可以使用。例如,我不能使用批量插入,因此需要连续运行最多50次INSERT。我认为有两种可能的方法:

  • 运行选择..。id IN(.)使用所有50个ID并查看返回的内容,然后根据需要运行尽可能多的插入。
  • 运行50个插入并捕获重复ID错误
EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-10-22 14:48:51

我认为您想要的只是简单地使用INSERT IGNORE。忘记步骤1和步骤2,只需插入并忽略:)

如果使用“忽略”关键字,则将忽略执行INSERT语句时发生的错误。例如,在不忽略的情况下,重复表中现有的唯一索引或主键值的行将导致重复键错误并中止该语句。使用“忽略”时,行将被丢弃,不会发生错误。被忽略的错误可能反而会产生警告,尽管重复键错误不会.

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

https://dba.stackexchange.com/questions/80845

复制
相关文章

相似问题

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