百万数据添加

现在有个测试项目,测试加缓存和不加缓存访问列表接口,性能的提升程度。测试之前需要有100万条数据进行测试,数据字典如下
user表
`id` 自增id
`account` 邮箱
`name` 姓名
`create_time` 创建时间
1. 在mysql命令行,手写DLL创建表结构。
 create   table  user(
    id  int  primary  key  auto_increment,
    account  varchar(11) ,
    name  varchar(50),
   create_time timestamp)engine=InnoDB;
 
2. 使用php脚本向数据库中use表批量插入100万数据,数据库操作必须使用pdo。
(1)account必须是邮箱地址,不能重复,并且唯一
(2)name 必须是大于11位的英文随机字符串,一样不得分
(3)desc 必须是大于20位英文随机字符串,一样不得分
如果有报错
插入百万数据报错,减少一下插入的数据数量,for循环内的变量记得赋值为空,否则字符过长,无法插入
//使用pdo插入百万条数据
$dbh = new PDO('mysql:host=127.0.0.1;dbname=1803A', "root", "root");//家里与mysql的连接并选择数据库
//设置连接的字符集
$dbh->exec('set  names uft8');//exe执行增删改非查询语句
$sql=" insert  into  user values";
$str="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
$end= strlen($str)-1;//字符串最后一位元素的下标
for($i=0;$i<=100000;$i++){
     $account="";//在for循环中给变量空值
    $name="";//在for中给name赋值为空
    $desc="";//描述
    for($x=0;$x<=10;$x++){
        $account.=$str[rand(0,$end)];
    }
    $account.=$account."@qq.com";
    for($j=0;$j<11;$j++){
        //在php中.代表的是字符串拼接
        $name.=$str[rand(0,$end)];//随机参数一个0-51之间的数字  字符串长度52  长度-1  是字符串最高位的下标
    }
    for($z=0;$z<=20;$z++){
        $desc.=$str[rand(0,$end)];
    }
    $sql.="(null,'$account','$name',null,'$desc'),";
}
$sql=substr($sql,0,-1);//截取出最后一个逗号
$res=$dbh->exec($sql);
echo $res;
注意点:
数据表设计的字段长度
报错1:
报错2:
4. 使用count统计出数据
  select  count(*) from  user;
 
5. 开启慢日志,设置慢查询时间为1s,必须截图。
 set  slow_query_log=on;
 set  long_query_time=0.1;
 set  slow_query_log_file='C:\\a.txt';
第一行开启慢查, 第二行 设计慢查的时间 ,第三行设置慢查的文件路径
6. 使用select account from user order by account desc查询数据库,并且找到慢日志,利用Explain工具对上面sql进行分析,并且优化,优化前和优化后的时间进行对比截图。(20分)
(1) 运行sql,并且找到慢查询日志,必须截图。
 
查询慢查
 show  variables  like  '%query%';
 
(2) 利用explain进行分析,必须截图。
 EXPLAIN select account from user order by account  desc
 
(3) 对该查询进行优化,优化前和优化后进行对比,必须截图。【添加索引】
没有添加前状态
添加索引后的状态
功能分析
没有创建索引的时候
使用普通索引后的效果
相差0.075秒 索引创建索引可以提高查询sql语句的速度
 
功能代码在运行的时候,发现某个查询的代码总是笔记慢,开启慢查,找到哪个一个sql语句运行慢,分析这个sql语句,创建索引
posted @ 2020-08-11 20:34  青春゜如詩  阅读(54)  评论(0)    收藏  举报