背景:
业务场景假设,公司原有excel记录了千万级客户的相关数据,公司业务结构实现了信息化的布局,需要在新开发的CRM系统中导入千万级的客户数据。此时需要用到mysql的insert操作来插入用户的海量数据。
普通情况下,会使用for循环一条一条的插入数据。
假设客户的数据量为10万条数据。
<?php
$connect=@mysql_connect("localhost","root","") or die(mysql_error());
@mysql_select_db("test") or die(mysql_error());
@mysql_query("set names utf-8");
$start_time=microtime(true);
/*
* 方法一,循环插入mysql数据
*/
$sql="insert into test_table(value) values('1')";
for($i=0;$i<100000;$i++)
{
@mysql_query($sql) or die(mysql_error());
}
$end_time=microtime(true);
echo "程序的运行时间为:".($end_time-$start_time);
由上图可见,程序运行速度非常慢,严重影响用户体验。
优化,对客户的插入数据进行优化。
速度优化的核心法则,使用"insert into table value(value1,value2