如何避免在MySQL中插入重复项?

激进活动

我有一个分析平台,拥有大量用户,每分钟有数百次插入点击。

有时,我看到完全相同的单击在同一秒内插入到数据库中,并且成为另一个的重复。

我有一个系统,该系统检查表是否具有相同的值,如果找到一个,则不让另一个插入。

但是,在这种情况下,在我看来,它们是在完全相同的毫秒内插入到数据库中的。

我在这里可以做什么?

德鲁

我的最爱: insert ignore myTable (col1, col2, ...) ...

其中唯一密钥(S)是预先设置禁止插入。似乎您并不在乎先前插入的内容,而您在乎最终结果不是重复的。

注意:唯一键可以是多列键(复合键)

一个警告的词insert ignore:如果不仔细考虑它对于需要知道该行确实已经存在的敏感系统的后果,则不应实施该警告对于“确保它在那里”是理想的。

选项B:可以这里那样研究意图锁,但它是针对您的特定用例而设计的。转向快速的INNODB行级锁定,当然也不要表锁定。大多数事情都需要权衡。锁定的缺点是并发性降低。

选项C:对于胆小的人(有时是我)。这就是我被聘用并希望以后不会受到同行的强烈反对时要做的事情。执行Insert ... on Duplicate Key UpdateIODKU),并得到一个类似虚假的列touches,这是您为IODKU的Update部分增加的整数。下面的例子:

insert myTable (col1, col2, col3) values (p1,p2,p3) 
on duplicate key update touches=touches+1;

以上将是最简约的形式。下面的视图是C#我在意“ IODKU的更新部分”中更多列时使用的视图,但仅显示该视图是否有益于任何人:

在此处输入图片说明

关于IODKU的最终想法:必须具有唯一的键(主键或唯一键),以引起“冲突”。因此,该语句知道是否执行插入或更新。没有这种独特的键冲突,将插入新行。

回到op问题,您的系统可能已经有该行的原因是由于高并发使用而没有锁定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

避免在mysql插入中重复

来自分类Dev

使用Spring Boot读取Excel文件时避免在MySQL中插入重复项

来自分类Dev

MySQL插入:避免带有多个列的重复项

来自分类Dev

如何避免arangoDB中的重复项

来自分类Dev

如何避免MySQL中的表格重复

来自分类Dev

如何通过使用linq避免下拉列表中的重复项?

来自分类Dev

避免在MySql中重复。

来自分类Dev

避免在MySql中重复。

来自分类Dev

如何进行批量插入同时避免在Postgresql中重复

来自分类Dev

如何最好避免在CakePHP中插入重复记录?

来自分类Dev

如何通过流插入避免在BigQuery中重复

来自分类Dev

如何最好避免在CakePHP中插入重复记录?

来自分类Dev

如何避免在SQL Server中重复插入动态值

来自分类Dev

如何进行批量插入同时避免在Postgresql中重复

来自分类Dev

如何避免在Xamarin.forms中重复插入ToolbarItem?

来自分类Dev

通过尝试插入来测试MYSQL中的重复项

来自分类Dev

如何删除 mySQL 中的重复项?

来自分类Dev

如何从MySQL数据库中总结一组结果,并避免在PHP中出现重复项?

来自分类Dev

避免在二进制搜索树中插入重复项

来自分类Dev

避免通过具有多个工作程序的Entity Framework在sql表中插入重复项

来自分类Dev

MySQL-在避免重复的同时插入行

来自分类Dev

发现重复项时,如何在其他表中插入忽略的MySQL行并更新字段?

来自分类Dev

如何避免checkListBox中出现重复项

来自分类Dev

如何避免将重复项推入数组

来自分类Dev

避免 Swift 数组中的重复项

来自分类Dev

避免通过理解将重复项插入Python列表

来自分类Dev

使用自动增量索引时避免插入重复项

来自分类Dev

Mongoose:如何避免插入重复记录?

来自分类Dev

如何避免在MySQL中重复的随机ID选择?

Related 相关文章

  1. 1

    避免在mysql插入中重复

  2. 2

    使用Spring Boot读取Excel文件时避免在MySQL中插入重复项

  3. 3

    MySQL插入:避免带有多个列的重复项

  4. 4

    如何避免arangoDB中的重复项

  5. 5

    如何避免MySQL中的表格重复

  6. 6

    如何通过使用linq避免下拉列表中的重复项?

  7. 7

    避免在MySql中重复。

  8. 8

    避免在MySql中重复。

  9. 9

    如何进行批量插入同时避免在Postgresql中重复

  10. 10

    如何最好避免在CakePHP中插入重复记录?

  11. 11

    如何通过流插入避免在BigQuery中重复

  12. 12

    如何最好避免在CakePHP中插入重复记录?

  13. 13

    如何避免在SQL Server中重复插入动态值

  14. 14

    如何进行批量插入同时避免在Postgresql中重复

  15. 15

    如何避免在Xamarin.forms中重复插入ToolbarItem?

  16. 16

    通过尝试插入来测试MYSQL中的重复项

  17. 17

    如何删除 mySQL 中的重复项?

  18. 18

    如何从MySQL数据库中总结一组结果,并避免在PHP中出现重复项?

  19. 19

    避免在二进制搜索树中插入重复项

  20. 20

    避免通过具有多个工作程序的Entity Framework在sql表中插入重复项

  21. 21

    MySQL-在避免重复的同时插入行

  22. 22

    发现重复项时,如何在其他表中插入忽略的MySQL行并更新字段?

  23. 23

    如何避免checkListBox中出现重复项

  24. 24

    如何避免将重复项推入数组

  25. 25

    避免 Swift 数组中的重复项

  26. 26

    避免通过理解将重复项插入Python列表

  27. 27

    使用自动增量索引时避免插入重复项

  28. 28

    Mongoose:如何避免插入重复记录?

  29. 29

    如何避免在MySQL中重复的随机ID选择?

热门标签

归档