mysql - php随机生成200万条记录中有很多重复的

查看:151
本文介绍了mysql - php随机生成200万条记录中有很多重复的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我在mysql优化的时候,随便建立了一张临时表,生成200W条数据,但是不明白,生成的记录中有重复的,而且还比较多,不解
在此谢谢诸位了

$conn=new mysqli("localhost","root","","test");
$conn->query("set names utf8");

function str_rand($num){
    $str="abcdefghijkmnpqrstuvwxyz0123456789";
    $return_str="";
    for($i=0;$i<$num;$i++){
        $return_str.=substr($str,rand(0,33),1);
    }
    return $return_str;
}
$sql="insert into news (id,title,author,keywords,descrition) values (?,?,?,?,?)";
$mysqli_stmt=$conn->prepare($sql);
for($i=1;$i<=2000000;$i++){
    $title=str_rand(rand(3,30));
    $author=str_rand(rand(3,20));
    $keywords=str_rand(rand(10,100));
    $descrition=str_rand(rand(30,255));
    $mysqli_stmt->bind_param("issss",$i,$title,$author,$keywords,$descrition);
    $res=$mysqli_stmt->execute();
}
$mysqli_stmt->close();
$conn->close();

备注:执行时间过长,肯定超过了php的最大执行时间,修改了配置文件,插入的数据中,100条以后的记录中,比如查询title='xxx'的字段,能查询出1.4W多条···

解决方案

PHPrand()采用的是伪随机算法,其产生的数据是有规律的。
给你一张真随机产生的数据分布图和一张PHP rand()产生的数据分布图,结果一目了然。
真随机:结果均匀分布

PHP rand():有明显条纹(规律性)

这篇关于mysql - php随机生成200万条记录中有很多重复的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆