MySQL当批量插入遇上唯一索引
一、 背景 以前使用SQL Server进行表分区的时候就碰到很多关于唯一索引的问题: Step8:SQL Server 当表分区遇上唯一约束 ,没想到在MySQL的分区中一样会遇到这样的问题: MySQL表分区实战 。 今天我们来了解MySQL唯一索引的一些知识:包括如何创建,如何批量插入,还有一些技巧上SQL; 这些问题的根源在什么地方?有什么共同点?MySQL中也有分区对齐的概念?唯一索引是在很多系统中都会出现的要求,有什么办法可以避免?它对性能的影响有多大? 二、 过程 (一) 导入差异数据,忽略重复数据,IGNORE INTO的使用 在MySQL创建表的时候,我们通常创建一个表的时候是以一个自增ID值作为主键,那么MySQL就会以PRIMARY KEY作为聚集索引键和主键,既然是主键,那当然是唯一的了,所以重复执行下面的插入语句会报1062错误:如Figure1所示; -- 创建测试表 CREATE TABLE `testtable` ( `Id` INT ( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT, `UserId` INT ( 11 ) DEFAULT NULL , `UserName` VARCHAR ( 10 ) DEFAULT NULL , `UserType` INT ( 11 ) DEFAULT NULL ,