我在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()
:有明显条纹(规律性)