当您试图插入一个已经存在的行时,是否有一种公认的做法,即批量插入表中不存在的值而不自动递增?
对于单行插入的情况有一个很好的答案:防止mysql duplicate insert上的自动递增
但是,为了提高插入效率,我想用一个sql命令插入大量的行(i、 e.:插入mybigtable值((value1_行1,value2_行1),(value1_行2,value2_行2)
附加信息:我想有所有的id的可用性,因为我的表有潜力变得非常大。将自动增量变量大小更改为bigint将是最后的手段。我的插入应用程序将尝试定期插入大量已经存在的行(比如股价更新),因此我将有效地跳过大量自动递增的id。
为什么使用自动递增:我认为为了提高查询速度,我应该在我的(非常大的)表中使用整数索引作为主键,而不是字符串字段的组合。我还认为我应该使用自动增量,所以mysql为我处理并发。
1条答案
按热度按时间uttx8gqw1#
你可以在另一个问题中使用这个技巧,使用
UNION
查询: