曾经有人告诉我,仅运行插入并让插入失败比检查数据库条目是否存在然后插入是否丢失要快。
我还被告知,大多数数据库都针对读取而非写入进行了高度优化,因此快速检查是否比慢速插入更快?
这是预期的碰撞次数的问题吗?(即,仅当条目已存在的可能性很小时,插入它才会更快。)它是否取决于我正在运行的数据库类型?因此,是否有一种方法会不断向我的错误日志中添加插入错误,这是不好的做法吗?
谢谢。
如果插入由于索引冲突而失败,那么它最多比检查记录是否存在慢得多。(两者都需要检查索引是否包含该值。)如果插入将成功,则发出两个查询要比发出一个查询慢得多。