Mysql大量插入随机数据方法--存储过程

创建测试表:

mysql> create table bigdata (id int,name char(2));

创建存储过程:
mysql> delimiter //
mysql> create procedure rand_data(in num int)
-> begin
-> declare str char(62) default ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789‘; --总共62个字符。
-> declare str2 char(2);
-> declare i int default 0;
-> while i<num do
-> set str2=concat(substring(str,1+floor(rand()*61),1),substring(str,1+floor(rand()*61),1));
-> set i=i+1;
-> insert into bigdata values (floor(rand()*num),str2);
-> end while;
-> end;
-> //
Query OK, 0 rows affected (0.01 sec)

mysql> delimiter ;

插入一百万条数据:

mysql> call rand_data(1000000);

  Query OK, 1 row affected (1 hour 11 min 34.95 sec)

mysql> select * from bigdata limit 300,10;
+--------+------+
| id     | name |
+--------+------+
| 230085 | WR   |
| 184410 | 7n   |
| 540545 | nN   |
| 264578 | Tf   |
| 571507 | at   |
| 577023 | 0M   |
| 731172 | 7h   |
| 914168 | ph   |
| 391848 | h6   |
| 665301 | dj   |
+--------+------+
10 rows in set (0.00 sec)

插入数据成功。

时间: 2024-08-11 13:42:36

Mysql大量插入随机数据方法--存储过程的相关文章

python 向MySQL里插入中文数据

用python向MySQL中插入中文数据出错,原代码片段: 1 db = MySQLdb.connect("localhost","root","123","TESTDB") 2 cursor = db.cursor() 3 sql = '''INSERT INTO aaaa(bb,cc) values(%s , %s)''' 4 5 data = ("山东","威海") 6 curso

mysql中插入中文数据

今天遇到的问题使mysql中插入中文数据后显示乱码,我在mysql中插入中文的时候,可以插入可是select的时候却无法显示,为此我写下这篇博客用于解决mysql插入中文. 由于有些截图没有记录下来,但是为了说明问题,我借用了别人的图,主要是为了完整的描述问题,在没有任何修改的时候,我们可以在mysql命令行中敲入以下指令,其结果如下所示: show variables like 'character%'; 可以看到,以上的编码并不支持中文,所以我们需要改变他们的编码(我这里是改成了utf8格式

解决mysql无法插入中文数据及插入后显示乱码的问题

(1)废话不多说就是使用mysql数据库的时候无法输入中文,可以输入中文后显示的又是乱码!! (2开始解决问题: 第一步:找到安装mysql的目录找到 my.ini 文件: 第二步:使用记事本打开my.ini文件 , 找到这个地方 看看default-character-set 是不是 utf8不是的话 改为utf8即可 1 # MySQL client library initialization. 2 [client] 3 port=3306 4 [mysql] 5 default-char

【转】【MySQL】mysql 通过bin-log恢复数据方法详解

mysql中bin-log在mysql默认状态下是没有打开的,我们要先打开mysql 开启bin-log功能,然后再通过备份的bin-log进行数据库恢复了. 具体的操作是通过mysqlbinlog这个指令来完成的 /mysql/bin/mysqlbinlog --database=fox --start-date="2013-01-22 5:00:00" --stop-date="2013-01-22 9:00:00" /mysql/data/mysql-bin.

myeclispe中向mysql中插入中文数据出现??问题解决办法

或许很多人会出现??这种令人头痛的mysql的中文乱码问题:解决如下: 1.先对于新建的数据库要设置默认的字符集为UTF-8 create database mydb default character set utf8 collate utf8_general_ci; 2.然后对于想对应的表进行设置默认字符集 CREATE TABLE IF NOT EXISTS `mydb` ( `username` varchar(64) NOT NULL, `userid` int(11) NOT NUL

Oracle 生成一张测试表并插入随机数据

1 --生成随机表 2 --CREATE table scott.One_Million as ( 3 SELECT ROWNUM AS T_ID, 4 TRUNC(DBMS_RANDOM.VALUE(0, 100)) 年龄, 5 DECODE(DBMS_RANDOM.STRING(0, 1), 6 'A', 7 '张', 8 'B', 9 '周', 10 'C', 11 '李', 12 'D', 13 '赵', 14 'E', 15 '安', 16 'F', 17 '王小', 18 '小')

Mysql批量插入大量数据

假设t_table1只有id和name2个字段 新建存储过程 DROP PROCEDURE IF EXISTS pro_batchInsert; CREATE PROCEDURE pro_batchInsert() BEGIN DECLARE i INT DEFAULT 1; WHILE i<=10000 DO INSERT INTO t_table1(name) VALUES(concat('名称',i)); SET i = i+1; END WHILE; END 调用 CALL pro_ba

mysql实现高效率随机取数据

从数据库中(mysql)随机获取几条数据很简单,但是如果一个表的数据基数很大,比如一千万,从一千万中随机产生10条数据,那就相当慢了,如果同时一百个人访问网站,处理这些个进程,对于一般的服务器来说,肯定是要死机的. mysql数据库获取随机数据的函数rand(),我建议轻易不要用这个,我写博客的时候试了一下,从16万数据里随机获取5条数据,用时14.02秒,这个耗费满惊人的. SELECT * FROM t_share ORDER BY rand() LIMIT 5; 通过mysql最大值函数m

mysql/mariadb数据库在插入表数据时,ID竟然成奇数增加了?看完下面内容就知道怎么处理了。

今天突然被问到一个问题,mysql数据库插入表数据时,设置了ID自增,但是插入数据后,ID却呈奇数增加,不是123456类型,而是13579形式,突然有点懵,研究了一会,发现是auto_increment步长的问题,下面就具体来说下怎么解决: 插入数据后发生表内ID按奇数增加,如下图: 查看自增步长:show variables like 'auto_increment%'; 将自增步长改为1:set @@auto_increment_increment=1; 此时用truncate清空表数据重