【发布时间】:2017-01-09 13:31:26
【问题描述】:
我有一个大表(500 万行),有一个名为“unique_id”的唯一标识符列
我正在通过 Node.js(node-mysql 绑定)运行 INSERT 查询,并且可能会尝试插入重复项。
两种解决方案是:
1) 将 'unique_id' 设为索引,并在 INSERT 之前检查整个数据库是否有重复记录:
'SELECT unique_id WHERE example = "'+unique_id+'" LIMIT 1'
2) 将 'unique_id' 设为 MySQL 中的唯一索引,并执行 INSERT 不检查重复项。显然,任何重复都会导致错误并且不会被插入到表中。
我的直觉是解决方案 2) 更好,因为它可以防止在最坏情况 (500 万 - 1) 行中搜索重复项。
使用解决方案 2) 有什么缺点吗?
【问题讨论】:
标签: mysql node.js indexing node-mysql