文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
插入 1KW 条测试数据
创建测试表 t_user
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`c_user_id` varchar(36) NOT NULL DEFAULT '' COMMENT '用户 Id',
`c_name` varchar(22) NOT NULL DEFAULT '' COMMENT '用户名',
`c_province_id` int(11) NOT NULL COMMENT '省份 Id',
`c_city_id` int(11) NOT NULL COMMENT '城市 Id',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`c_user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
创建临时表
CREATE TABLE `tmp_table` (
`id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
用 python 生成 1kw 个数据
[root@fengye tmp]# python -c "for i in range(1, 1+10000000): print(i)" > base.txt
在 mysql 中执行导入命令
load data infile '\home\tmp\base.txt' replace into table tmp_table
可能出现的报错
1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
原因:mysql 默认没有开启
secure_file_priv
解决:在
my.ini(/etc/my.cnf)
中的[mysqld]
节点中添加secure_file_priv = '',然后重启
说明:
secure_file_prive = null 限制 mysqld 不允许导入导出
secure_file_priv = /var/lib/mysql-files/ 限制 mysqld 的导入导出只能发生在/var/lib/mysql-files/目录下
secure_file_priv = '' 不对 mysqld 的导入导出做限制
从临时表中的数据插入到 t_user
中
insert into t_user
select id,uuid(),concat('userNickName',id),floor(rand()*1000),floor(rand()*100),now()
from tmp_table
打乱创建时间
UPDATE t_user SET create_time=date_add(create_time, interval FLOOR(1 + (RAND() * 7)) year);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论