Docker下安装Mysql
参考https://www.runoob.com/docker/docker-install-mysql.html
$ docker search mysql
$ docker pull mysql:latest
$ docker images
$ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1qaz@WSX.com mysql
通过 docker ps 命令查看是否安装成功:
配置,让本地客户端能够连接服务器端
mysql -h localhost -uroot-p1qaz@WSX.com
-u -p不能有空格否则登录不进去
Use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
alter user 'root'@'%' identified with mysql_native_password by '123456';
flush privileges;
连接Navicat for MySQL或者用MySQL Workbench 8.0 CE
编写存储过程插入数据
直接在Navicat for MySQL,查询SQL窗口下编写SQL。存储过程格式不太方便用。
创建表:
CREATE TABLE `userInfo` (
`userId` bigint NOT NULL,
`userName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`userAge` int DEFAULT NULL,
`label` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC
创建存储过程
DELIMITER $$ -- 重新定义“;”分号 否则存储过程报错;
DROP PROCEDURE IF EXISTS `insertDataToUserInfo`;
CREATE PROCEDURE `insertDataToUserInfo` ()
BEGIN
DECLARE usid bigINT DEFAULT 0 ;
DECLARE usnm varchar(30) DEFAULT '';
DECLARE lbstr varchar(30) DEFAULT '';
DECLARE i bigINT DEFAULT 1;
DEClare maxUsId bigINT default 1;
select IFNULL(max(userId),0) into maxUsId from userInfo;
WHILE i < 100000 DO
set usid = maxUsId + i;
insert into userInfo values(usid,concat("我的商品名称",usid),20,concat("电视",usid));
set i = i + 1;
if i % 500 = 0 THEN
commit;
end if;
END WHILE;
COMMIT;
END $$
CALL insertDataToUserInfo(); -- 调用存储过程
select count(*) from userInfo order by userid desc;
受影响的行: 0
时间: 56.635s
直接修改再插入100万条,修改为每1000条提交一次。
受影响的行: 0
时间: 592.209s
使用docker stats 查看资源使用情况