MySQL——插入20万条随机数据random_addinfo和索引功能

DDL

CREATE TABLE `亿万富翁表` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `birthday` date NOT NULL,
  `userName` varchar(100) NOT NULL,
  `countMoney` decimal(15,2) NOT NULL,
  `age` int(11) NOT NULL,
  `sex` varchar(10) NOT NULL,
  `address` varchar(200) NOT NULL,
  `introduce` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=600008 DEFAULT CHARSET=utf8;

DQL

DELIMITER //
ALTER TABLE `亿万富翁表` AUTO_INCREMENT = 1;

CREATE PROCEDURE random_addinfo()
BEGIN
    DECLARE i INT DEFAULT 0;
    WHILE i < 200000 DO
        INSERT INTO 亿万富翁表 (birthday, userName, countMoney, age, sex, address, introduce)
        VALUES (
            -- 生成随机的生日(例如:1900-01-01 到 2023-12-31 之间)
            FROM_UNIXTIME(UNIX_TIMESTAMP('1900-01-01') + FLOOR(RAND() * (UNIX_TIMESTAMP('2023-12-31') - UNIX_TIMESTAMP('1900-01-01') + 1))),
            -- 生成随机的用户名(假设用户名格式为 user1, user2, ..., userN)
            CONCAT('user', FLOOR(RAND() * 1000000)),
            -- 生成随机的资产(例如:1亿到1000亿之间)
            FLOOR(100000000 + RAND() * 99000000000),
            -- 生成随机的年龄(例如:20到90之间)
            FLOOR(20 + RAND() * 71),
            -- 随机分配性别
            IF(RAND() > 0.5, '男', '女'),
            -- 生成随机地址(这里简化为随机字符串,你可以根据需要自定义更复杂的地址生成逻辑)
            CONCAT('地址', FLOOR(RAND() * 1000000)),
            -- 生成随机介绍(同样简化为随机字符串)
            CONCAT('介绍', FLOOR(RAND() * 1000000))
        );
        SET i = i + 1;
    END WHILE;
END //

DELIMITER ;

call random_addinfo();

实验索引的能力

select count(*) from 亿万富翁表;

#实验索引的能力

select * from 亿万富翁表 where userName='user111642';

-- select * from 亿万富翁表 where userName='user111642'
-- > OK-无索引
-- > 时间: 0.237s


-- select * from 亿万富翁表 where userName='user111642'
-- > OK-有索引,所需时间缩短
-- > 时间: 0.003s
-- 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值