我的服务器接收数据,应该插入或更新现有数据库表。我的问题是数据量huge,接收到数千条记录,一张一张地写可能要花费数小时。有没有一种方法可以优化写作?我还应该说,每次写操作之前都会有一个查询,以检查记录是否已在数据库中。
目前,我使用带有TTL的缓存来跳过重复的记录。我还使用信号量来防止一次过多的DB写请求(可能引发超时错误)。
INSERT
并执行它。 (10倍加速)INSERTs
内放入100个1行BEGIN
。.COMMIT
。 (10倍加速)提供SHOW CREATE TABLE
;我可能还有更多建议。
duplicate
记录是什么意思?所有列都一样吗?只是某些UNIQUE
列是相同的吗?这里可能有帮助的技术。
1000个记录被一一插入,即使没有上述建议也应不超过10秒。此过程还涉及其他方面;请详细说明。