代码1:for循环批量插入100W数据
<?php
set_time_limit(0);
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "learn";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检测连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "INSERT INTO shop_goods (title, price) VALUES ('商品1',500)";
for ($i=0; $i <1000000 ; $i++) {
mysqli_query($conn, $sql);
}
//计算执行时长
$runtime=time()-$_SERVER['REQUEST_TIME'];
echo $runtime; //1.03分钟
mysqli_close($conn);
?>完成时间:1.03分钟
代码2:将所有插入合并为1条Mysql语句,由于语句较长,请执行mysql命令:set global max_allowed_packet = 2*1024*1024*10;避免超长Mysql无法执行。
<?php
set_time_limit(0);
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "learn";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检测连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "INSERT INTO shop_goods (title, price) VALUES ";
for ($i=0; $i <1000000 ; $i++) {
$sql.="('商品1',500),";
}
$sql = substr($sql,0,strlen($sql)-1);
mysqli_query($conn, $sql);
//计算执行时长
$runtime=time()-$_SERVER['REQUEST_TIME'];
echo $runtime; //4秒
mysqli_close($conn);
?>
完成时间:4秒
面试中PHP面试官会问调用一个不存在的方法,如何知道是哪个文件哪行调用的?假设方法是getWorkLoad()回答1:开启PHP错误输出,PHP会输出Fatal error: Call to undefined function getWorkLoad() in D:\wwwroot\thinkpa...
(1).config.php 配置文件<?php /** * RabbitMQ_Config */ $config = [ 'host' => ...
<?php /** * daemonize让当前脚本为守护进程执行 * @param string $callback 匿名函数 */ function daemonize($callback) {...
最近在编写windows php多线程的东西,从官网下载了PHP的线程安全版,尝试开启curl扩展extension=php_curl.dllphp -m 却提示 PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl...
概念请参考w3school文章: redis watch ,redis exec (看完基本秒懂)(1)基本事务://连接本地的 Redis 服务 $redis = new Redis(); $redis->con...
众所周知MyISAM引擎不支持事务,但是我只是知道不支持事务,并未测试具体的表现是什么,测试代码如下:try { //开启事务 Db::startTrans(); &...