gpt4 book ai didi

python - 执行 SQL 'INSERT IF NOT EXISTS' 的最有效方法

转载 作者:行者123 更新时间:2023-11-28 22:44:16 34 4
gpt4 key购买 nike

以下哪项会表现更好?

(1) **INSERT IGNORE**
cursor.execute('INSERT IGNORE INTO table VALUES (%s,%s)')

(2) **SELECT or CREATE**
cursor.execute('SELECT 1 FROM table WHERE id=%s')
if not cursor.fetchone():
cursor.execute('INSERT INTO table VALUES (%s,%s)')

我必须重复这种模式数百万次,所以我希望找到这种模式的最佳性能。最好是哪一个?为什么?

最佳答案

insert ignore 是更好的方法,原因有几个。

在性能方面,只有一个查询被编译和执行,而不是两个。这节省了将内容移入和移出数据库的开销。

在维护方面,只有一个查询更容易维护,因为逻辑都在一个地方。例如,如果您添加了一个 where 子句,您将更有可能在两个单独的查询中错过添加它。

就准确性而言,只有一个查询应该没有(或至少更少)竞争条件的机会。如果在 selectinsert 之间插入了一行,那么你仍然会得到一个错误。

但是,比 insert ignore 更好的是 insert 。 . .关于重复 key 更新。后者只是避免了重复问题的错误。 insert ignore 可能会忽略您真正关心的错误。

顺便说一下,无论如何您都应该检查语句中的错误。

关于python - 执行 SQL 'INSERT IF NOT EXISTS' 的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29721656/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com