mysql的性能优化案例
在一次项目实现中,以前写了个程序,将在txt文件中的电话号码和对应的类型往数据库中插入,小数据量的情况下,用个数组遍历循环的方式,很容易解决,但是当数据量一下
但是,几十万个电话一次性插入,就变得耗时
代码如下
//$array为txt文件explode出来的数组,每一个为一个电话号码, $str为类型 for($i=0; $i<count($array); $i++) { $tmpstr = "'". $array[$i] ."','". $str ."'"; $sql="INSERT INTO ".$usertable." (tel,type) VALUES (".$tmpstr.")"; mysql_query($sql); }
数据量过大的情况下以上代码就会需要很长时间才能运行完毕,为了减少时间的消耗,我想到用减少数据库写入次数应该可以避免
如此有了下面的改进代码:
$sql2="INSERT INTO ".$usertable." (tel,type,updatetime) VALUES"; for($i=0; $i<count($array); $i++) { $tmpstr = "'". $array[$i] ."','". $str ."'"; $sql2 .= "(".$tmpstr."),"; } $sql2 = substr($sql2,0,-1); //去除最后的逗号 mysql_query($sql2);
这个就在只插入一次的情况下,一千多万的数据,也仅用几秒钟
这就是数据库性能优化带来的方便!