返回介绍

插入 1KW 条测试数据

发布于 2024-08-13 19:52:40 字数 1841 浏览 0 评论 0 收藏 0

创建测试表 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文