最近在做項目分別使用了TP5.0,TP5.1查看日志文件的時間發現一個有趣的問題,
以我做過的測試代碼為例
for ($i = 0; $i < 700; $i++) {
$tmp['name'] = 'f_'.$i;
$tmp['times'] = date('Y-m-d H:i:s');
db('task')->insert($tmp);
}
很簡單的代碼,就是在task這個表中連續插入700條數據。
在使用TP5.1的時候,查看日志文件發現
[ sql ] [ DB ] CONNECT:[ UseTime:0.000533s ] mysql:host=127.0.0.1;dbname=xun_php_cn;charset=utf8
[ sql ] [ SQL ] INSERT INTO `op_task` (`name` , `times`) VALUES ('f_7' , '2019-11-20 16:19:52') [ RunTime:0.001197s ]
[ sql ] [ DB ] CONNECT:[ UseTime:0.000514s ] mysql:host=127.0.0.1;dbname=xun_php_cn;charset=utf8
[ sql ] [ SQL ] INSERT INTO `op_task` (`name` , `times`) VALUES ('f_8' , '2019-11-20 16:19:52') [ RunTime:0.001186s ]
[ sql ] [ DB ] CONNECT:[ UseTime:0.000546s ] mysql:host=127.0.0.1;dbname=xun_php_cn;charset=utf8
[ sql ] [ SQL ] INSERT INTO `op_task` (`name` , `times`) VALUES ('f_9' , '2019-11-20 16:19:52') [ RunTime:0.001553s ]
[ sql ] [ DB ] CONNECT:[ UseTime:0.000641s ] mysql:host=127.0.0.1;dbname=xun_php_cn;charset=utf8
[ sql ] [ SQL ] INSERT INTO `op_task` (`name` , `times`) VALUES ('f_10' , '2019-11-20 16:19:52') [ RunTime:0.001717s ]
每插入一條數據,都需要重新連接MYSQL
同樣的代碼 在使用TP5.0的時候 就只有一條連接MYSQL的日志
[ sql ] [ DB ] CONNECT:[ UseTime:0.000533s ] mysql:host=127.0.0.1;dbname=xun_php_cn;charset=utf8
[ sql ] [ SQL ] INSERT INTO `op_task` (`name` , `times`) VALUES ('f_7' , '2019-11-20 16:19:52') [ RunTime:0.001197s ]
[ sql ] [ SQL ] INSERT INTO `op_task` (`name` , `times`) VALUES ('f_8' , '2019-11-20 16:19:52') [ RunTime:0.001186s ]
[ sql ] [ SQL ] INSERT INTO `op_task` (`name` , `times`) VALUES ('f_9' , '2019-11-20 16:19:52') [ RunTime:0.001553s ]
並且 測試虛擬機 mysql連接數設置為 800
for ($i = 0; $i < 1000; $i++) {
$tmp['name'] = 'f_'.$i;
$tmp['times'] = date('Y-m-d H:i:s');
db('task')->insert($tmp);
}
如果插入數據是1000條 TP5.1就會報錯 提示 too many connecntios 錯誤 ,TP5.0不會報錯
並且換一種寫法 TP5.1的時候會報錯,
$obj = db('task');
for ($i = 0; $i < 1000; $i++) {
$tmp['name'] = 'f_'.$i;
$tmp['times'] = date('Y-m-d H:i:s');
$obj->insert($tmp);
}
TP5.0 這種寫法就正常執行,並且效率提升很多 請看我前面的測試結果
https://www.cnblogs.com/fuyifan/p/11898241.html
以我粗淺的理解,是不是TP5.1越搞越回去了?