ITPub博客

首页 > 数据库 > MySQL > 生成数据

生成数据

原创 MySQL 作者:wzgchen 时间:2015-08-03 18:00:49 0 删除 编辑
第一步: 创建表member 
DROP table IF EXISTS member; create table member( 
    id bigint auto_increment primary key,     name varchar(20), 
    sex tinyint not null default '0' 
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1  


第二步:创建存储过程,插入百万数据 
#如果存在已定义的存储过程inserts,
删除掉 drop procedure IF EXISTS inserts;
#自定义结束符
delimiter // 
#创建存储过程 
create procedure inserts() begin 
    DECLARE i int;     set i = 1; 
        WHILE(i <= 10000000) DO   
               insert into member(name,sex) values(concat('name',i),i%2);              SET i = i+1;            END WHILE; end; 
#使用自定义结束符结束存储过程定义 // 
#还原结束符为; delimiter  
#调用存储过程 call inserts()


生成数据方法2:

CREATE TABLE `tmp_index_merge` (
  `id` int(11) NOT NULL,
  `key1_part1` int(11) NOT NULL,
  `key1_part2` int(11) NOT NULL,
  `key2_part1` int(11) NOT NULL,
  `key2_part2` int(11) NOT NULL,
  `key2_part3` int(11) NOT NULL,
  `key3_part1` int(11) NOT NULL DEFAULT '4',
  PRIMARY KEY (`id`),
  KEY `ind2` (`key2_part1`,`key2_part2`,`key2_part3`),
  KEY `ind1` (`key1_part1`,`key1_part2`,`id`),
  KEY `ind3` (`key3_part1`,`id`)
) ENGINE=InnoDB;


for i in `seq 1 5000` ; do mysql -vvv -uroot -p123456 -S /tmp/mysql.sock employees \
-e 'insert into tmp_index_merge values (60000*rand(),5000*rand(),\
5000*rand(),5000*rand(),5000*rand(),5000*rand(),2877)'; done


for i in `seq 1 5000` ; do mysql -vvv -uroot -p123456 -S /tmp/mysql.sock employees \
-e 'insert into tmp_index_merge values (600000*rand(),4333,1657,\
5000*rand(),5000*rand(),5000*rand(),5000*rand())'; done

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/91975/viewspace-1760676/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-05-01

  • 博文量
    383
  • 访问量
    213573