情况是这样的
随着时间的推移,我将有一个大约有40-50,000条记录的MySQL数据库。这些记录是从一个文本文件(通过PHP脚本,在网页上的按钮被按下后)中提取的,该文本文件每天从另一个部门(不在我手中)更新(附加) 2-3次。我必须在数据库中插入这些新记录(当我的网页上的按钮被按下时),并忽略已经存在的记录。为此,我使用"Insert Ignore"语句。
我的问题是,当记录增长时(4万到50000),"Insert Ignore"语句是否会花费很长时间执行(我的浏览器超时是5秒,我不能超过5秒)。一次更新的唯一记录永远不会超过300条,而我的表只有2列(如果有关系的话)。这个系统现在运行得很好,但我想为未来做好准备。我没有办法测试他,所以如果有人能根据他/她的经验告诉我,我将不胜感激。
发布于 2011-12-29 05:53:44
对于INSERT IGNORE和INSERT ... On DUPLICATE KEY UPDATE,我有一个繁重的名称/值系统。当表格变得很大时,我正在“拆分”今天的信息(更新很重)和归档。
此外,我不知道您的系统设计是什么,但在我的系统(简单名称/计数器)中,我保存了一周的详细信息,并对归档进行了分组,以获得更小和更少的行。
祝好运!
发布于 2011-12-29 06:03:03
一个包含50k记录的表应该不会给您带来这样的性能问题。如果你有五千万,我可能会改变主意。
正如Moshe L所指出的,有几种方法可以做到这一点。这里有一篇文章的链接,该文章测量了一个包含900万条记录的数据库中的performance of ON DUPLICATE KEY vs. INSERT IGNORE。根据这一点,你走上了正确的道路。
https://stackoverflow.com/questions/8661682
复制相似问题