mysql - php随机生成200万条记录中有很多重复的
本文介绍了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多条···
解决方案
PHP
的rand()
采用的是伪随机算法,其产生的数据是有规律的。
给你一张真随机产生的数据分布图和一张PHP rand()
产生的数据分布图,结果一目了然。
真随机:结果均匀分布PHP rand()
:有明显条纹(规律性)
这篇关于mysql - php随机生成200万条记录中有很多重复的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文