MySQL存储过程——Baidu Comate智能代码助手添加20条DML语句——测试索引效果
DDL
代码语言:javascript复制CREATE TABLE student (
id INT PRIMARY KEY AUTO_INCREMENT,
createDate DATE NOT NULL,
userName VARCHAR(255) NOT NULL,
phone VARCHAR(20),
age INT,
sex ENUM('M','F','O') NOT NULL,
introduce TEXT
);
存储过程
代码语言:javascript复制DELIMITER //
CREATE PROCEDURE InsertRandomStudents()
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i < 1000 DO
INSERT INTO student (createDate, userName, phone, age, sex, introduce)
VALUES (
-- createDate: 随机日期(例如:过去10年内)
DATE_ADD(NOW(), INTERVAL FLOOR(RAND() * (0 - 3650) 0) DAY),
-- userName: 随机用户名(例如:'User' 随机数字)
CONCAT('User', FLOOR(RAND() * 1000000)),
-- phone: 随机电话号码(例如:13800000000 到 13899999999 之间)
CONCAT('138', LPAD(FLOOR(RAND() * 999999999), 9, '0')),
-- age: 随机年龄(例如:18 到 30 之间)
FLOOR(RAND() * (30 - 18 1)) 18,
-- sex: 随机性别(M, F, 或 O)
ELT(1 FLOOR(RAND() * 3), 'M', 'F', 'O'),
-- introduce: 随机介绍文本(例如:'Hello, I am a student.' 或其他文本)
-- 这里为了简化,只使用了一条静态文本,你可以根据需要扩展为多条或更复杂的文本。
'Hello, I am a student.'
);
SET i = i 1;
END WHILE;
END //
DELIMITER ;
# 如果是带参数的需要自己传递值,反之不需要
CALL InsertRandomStudents();
# 数据量查询
select count(*) from student;
20条数据,得根据机械/固态硬盘来判断插入所需的时间。机械硬盘会有滋滋滋的声音。
索引测试
查询语句-根据情况修改一下userName的值。
代码语言:javascript复制select * from student where userName='User512591';
-- select * from student where userName='User512591' -- > OK-没有索引 -- > 时间: 0.159s -- > OK-有索引 -- > 时间: 0.001s
实际的测试结果。
问题语句,前提是选中DDL语句
请帮我根据DDL生成一个添加20万条随机数据的存储过程。要求尽可能的使用中文来添加信息。