繁体   English   中英

插入一段时间后忽略效率

[英]Insert Ignore efficiency over a period of time

这是情况

随着时间的流逝,我将拥有一个包含约405,000条记录的MySQL数据库。 记录从文本文件(通过PHP脚本,在按下网页上的按钮后)中提取,每天从另一个部门(不在我手中)更新自己(附加)2-3次。 我必须将这些新记录插入数据库中(按我的网页上的按钮时),而忽略已经存在的记录。 为此,我使用"Insert Ignore"语句。

我的问题是,当记录长大(40-50,000)时, "Insert Ignore"语句需要很长时间才能执行(我的浏览器超时为5秒,我不能超过这个)。 一次只能更新300条唯一记录,而我的表只有2列(如果重要的话)。 该系统现在运行良好,但我希望为将来做好准备。 我无法测试他,因此如果有人可以根据他/她的经验告诉我,我将不胜感激。

具有50k记录的表不应该给出类似的性能问题。 现在如果您有五千万,我可能会改变我的声调。

正如Moshe L指出的那样,有几种方法可以解决这个问题。 这是一篇文章的链接,该文章衡量了在900万条记录的数据库中ON DUPLICATE KEY与INSERT IGNORE性能 因此,您将走上正确的道路。

我有一个重型名称/值系统与INSERT IGNOREINSERT ... On DUPLICATE KEY UPDATE 当表变大时,我正在“拆分”今天的信息(更新重)和存档。

另外,我不知道您的系统设计是什么,但是在我的系统(简单的名称/计数器)中,我正在保存一周的详细信息,并且将归档分组以减少行数并减少行数。

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM