数据库结构CREATE TABLE `aijiejiudia` (
`id` int(8) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(15) NOT NULL DEFAULT '',
`nickname` varchar(40) NOT NULL,
`qq` varchar(11) NOT NULL,
`password` varchar(32) NOT NULL DEFAULT '',
`salt` varchar(40) NOT NULL,
`secques` varchar(40) NOT NULL DEFAULT '',
`email` varchar(32) NOT NULL DEFAULT '',
`mobile` varchar(40) NOT NULL,
`lastip` char(15) NOT NULL DEFAULT '',
`regdate` varchar(10) NOT NULL DEFAULT '0',
`lastlogintime` varchar(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`nickname`,`email`,`mobile`,`secques`,`lastlogintime`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=19022923 DEFAULT CHARSET=utf8;我是用
Navicat for MySQL 导入的导入后的数据如下图我用的索引方式一直都是这个应该叫做联合唯一索引吧这次数据有1000万之多 发现有200W数据导入不进去 说是重复 可我随机看了几个 发现还是有的数据没有到进入那我的问题就是
我想要的就是不重复数据 索引查询速度快 但要保证导入数据的完整性 也就是全部导进去 不重复 请问我这样的设计索引合理吗 如果不合理的话 请问如何改善
`id` int(8) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(15) NOT NULL DEFAULT '',
`nickname` varchar(40) NOT NULL,
`qq` varchar(11) NOT NULL,
`password` varchar(32) NOT NULL DEFAULT '',
`salt` varchar(40) NOT NULL,
`secques` varchar(40) NOT NULL DEFAULT '',
`email` varchar(32) NOT NULL DEFAULT '',
`mobile` varchar(40) NOT NULL,
`lastip` char(15) NOT NULL DEFAULT '',
`regdate` varchar(10) NOT NULL DEFAULT '0',
`lastlogintime` varchar(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`nickname`,`email`,`mobile`,`secques`,`lastlogintime`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=19022923 DEFAULT CHARSET=utf8;我是用
Navicat for MySQL 导入的导入后的数据如下图我用的索引方式一直都是这个应该叫做联合唯一索引吧这次数据有1000万之多 发现有200W数据导入不进去 说是重复 可我随机看了几个 发现还是有的数据没有到进入那我的问题就是
我想要的就是不重复数据 索引查询速度快 但要保证导入数据的完整性 也就是全部导进去 不重复 请问我这样的设计索引合理吗 如果不合理的话 请问如何改善
`id` int(8) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(15) NOT NULL DEFAULT '',
`nickname` varchar(40) NOT NULL,
`qq` varchar(11) NOT NULL,
`password` varchar(32) NOT NULL DEFAULT '',
`salt` varchar(40) NOT NULL,
`secques` varchar(40) NOT NULL DEFAULT '',
`email` varchar(32) NOT NULL DEFAULT '',
`mobile` varchar(40) NOT NULL,
`lastip` char(15) NOT NULL DEFAULT '',
`regdate` varchar(10) NOT NULL DEFAULT '0',
`lastlogintime` varchar(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`nickname`,`email`,`mobile`,`secques`,`lastlogintime`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=19022923 DEFAULT CHARSET=utf8;我是用
Navicat for MySQL 导入的导入后的数据如下图我用的索引方式一直都是这个应该叫做联合唯一索引吧这次数据有1000万之多 发现有200W数据导入不进去 说是重复 可我随机看了几个 发现还是有的数据没有到进入那我的问题就是
我想要的就是不重复数据 索引查询速度快 但要保证导入数据的完整性 也就是全部导进去 不重复 请问我这样的设计索引合理吗 如果不合理的话 请问如何改善
这5个字段不重复?
建议将文件先导入1个临时表中,处理完后,再导入工作表中
对的为什么要先导入临时表呢 直接导入不好吗
Navicat for MySQL 导入的就是说重复 我查了有部分字段没导入 所以很奇怪 这个联合索引是不是有问题
用LOAD DATA是无法实现的
没用LOAD DATA
关键是这个联合唯一索引这个问题 我用了联合唯一索引 不就可以保证我在导入的时候就可以不重复导入数据吗