zoukankan      html  css  js  c++  java
  • MYSQL-创建测试数据

    引用自https://www.cnblogs.com/qmfsun/p/4881919.html

    在mysql数据库中制作千万级测试表
     
    前言:
    最近准备深入的学一下mysql,包括各种引擎的特性、性能优化、分表分库等。为了方便测试性能、分表等工作,就需要先建立一张比较大的数据表。我这里准备先建一张千万记录用户表。
     
    步骤:
    1 创建数据表(MYISAM方式存储插入速度比innodb方式快很多)
      
    数据表描述
     
    数据量:1千万
     
    字段类型:
    id :编号
    uname:用户名
    ucreatetime: 创建时间
    age:年龄
     
    CREATE TABLE usertb(   
    id serial,    
    uname  varchar(20) ,   
    ucreatetime  datetime  ,   
    age  int(11))   
    ENGINE=MYISAM 
    DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci   
    AUTO_INCREMENT=1   
    ROW_FORMAT=COMPACT;    
     
    2 创建插入数据存储过程 
     
    delimiter $$ 
    SET AUTOCOMMIT = 0$$   
     
    create  procedure test1()  
    begin
    declare v_cnt decimal (10)  default 0 
    dd:loop            
            insert  into usertb values         
            (null,'用户1','2010-01-01 00:00:00',20),         
            (null,'用户2','2010-01-01 00:00:00',20),         
            (null,'用户3','2010-01-01 00:00:00',20),         
            (null,'用户4','2010-01-01 00:00:00',20),         
            (null,'用户5','2011-01-01 00:00:00',20),         
            (null,'用户6','2011-01-01 00:00:00',20),         
            (null,'用户7','2011-01-01 00:00:00',20),         
            (null,'用户8','2012-01-01 00:00:00',20),         
            (null,'用户9','2012-01-01 00:00:00',20),         
            (null,'用户0','2012-01-01 00:00:00',20)             
                    ;                   
            commit;                     
            set v_cnt = v_cnt+10 ;                            
                if  v_cnt = 10000000 then leave dd;                           
                end if;          
            end loop dd ; 
    end;$$   
     
    delimiter ;    
     
    3 执行存储过程
     
    call test1;    
     
    耗时:用i5的笔记本执行也只需要95秒的时间
     
    4 根据需要修改engineer (非必要步骤,如果不需要转换无需操作)
     
    alter table usertb engine=innodb;    
    耗时:用i5的笔记本执行也只需要200秒的时间
  • 相关阅读:
    176. Second Highest Salary
    175. Combine Two Tables
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
    169. Majority Element
    168. Excel Sheet Column Title
    167. Two Sum II
    160. Intersection of Two Linked Lists
    个人博客记录
    <meta>标签
  • 原文地址:https://www.cnblogs.com/AYxing/p/9623515.html
Copyright © 2011-2022 走看看