【发布时间】:2018-10-17 14:01:08
【问题描述】:
当您尝试插入已存在的行时,是否存在将不存在的值批量插入表中而不自动递增的公认做法?
对于单行插入案例有一个很好的答案: Prevent auto increment on MySQL duplicate insert
但是,为了提高插入效率,我想使用单个 SQL 命令插入大量行。 (即:INSERT INTO myBigTable VALUES ((value1_row1,value2_row1),(value1_row2,value2_row2) ... )
附加信息: 我想拥有所有可用的 ID,因为我的表有可能变得非常大。将 auto_increment 变量大小更改为 BIGINT 将是最后的手段。我的插入应用程序将尝试定期插入大量已经存在的行(想想股票价格更新),因此我将有效地跳过大量自动递增的 ID。
为什么我使用自动增量: 我相信为了查询速度,我应该在我的(非常大的)表中使用整数索引作为主键,而不是字符串字段的组合。我也认为我应该使用 auto_increment,以便 MySQL 为我处理并发。
【问题讨论】:
标签: mysql insert auto-increment