事務提交大量sql與合併提交大量sql效率對比

2021-08-02 03:59:07 字數 2152 閱讀 1380

事務提交5000條update,耗時:13.79 秒,記憶體占用:17.88 mb(大量時間消耗在query生成sql語句上)

$starttime  = microtime(true);

$startmemory = memory_get_usage();

for($i=0; $i< 5000; ++$i)

$transaction->commit();

$endtime = microtime(true);

$runtime = number_format($endtime - $starttime, 2); //秒

$endmemory = memory_get_usage();

$usedmemory = number_format(($endmemory - $startmemory) / 1024 / 1024, 2); //mb

echo("耗時:$runtime 秒,記憶體占用:$usedmemory mb");

事務提交5000條update,耗時:9.59 秒,記憶體占用:16.66 mb(一次性生成sql語句)

$starttime = microtime(true);

$startmemory = memory_get_usage();

for($i=0; $i< 5000; ++$i)

$transaction->commit();

$endtime = microtime(true);

$runtime = number_format($endtime - $starttime, 2); //秒

$endmemory = memory_get_usage();

$usedmemory = number_format(($endmemory - $startmemory) / 1024 / 1024, 2); //mb

echo("耗時:$runtime 秒,記憶體占用:$usedmemory mb");

合併sql提交5000條update,耗時:13.05 秒,記憶體占用:0.37 mb(主要時間都耗在query生成sql語句上了)

$starttime  = microtime(true);

$startmemory = memory_get_usage();

$sql = '';

for($i=0; $i< 5000; ++$i)

$transaction->commit();

$endtime = microtime(true);

$runtime = number_format($endtime - $starttime, 2); //秒

$endmemory = memory_get_usage();

$usedmemory = number_format(($endmemory - $startmemory) / 1024 / 1024, 2); //mbecho("耗時:$runtime 秒,記憶體占用:$usedmemory mb");

合併sql提交5000條update,耗時:4.84 秒,記憶體占用:0.00 mb(一次性生成sql語句)

$sql = '';

for($i=0; $i< 5000; ++$i)

$starttime = microtime(true);

$startmemory = memory_get_usage();

$transaction->commit();

$endtime = microtime(true);

$runtime = number_format($endtime - $starttime, 2); //秒

$endmemory = memory_get_usage();

$usedmemory = number_format(($endmemory - $startmemory) / 1024 / 1024, 2); //mb

echo("耗時:$runtime 秒,記憶體占用:$usedmemory mb");

form表單提交大量input,php接收不全

表單提交的資料不全,發現是因為php.ini中max input vars限制為1000。有兩種方案 1.修改伺服器 php.ini 檔案中的 max input vars 這個是php5.3.9之後開始增加的乙個變數。當超過變數值以後 傳送的資料將被自動截斷,造成資料丟失。在修改了max inpu...

SVN提交大量無效檔案補救方法

有的時候,使用svn時候會發現,由於系統編譯器的問題,會自動生成大量.class檔案,或者一些多餘的配置檔案,這裡主要就是整理一下,當如果手誤,將這些多餘檔案都提交到了svn上面的補救方法.可以在專案目錄中找到這些多餘的檔案,基本上這些生成的檔案都能很容易的找到.例如下面這些.settings以及t...

php 表單提交大量資料發生丟失的解決方法

最近在專案中,出現乙個奇怪的現象,有乙個大form裡面有上千個input,提交的時候,老是發現post過來的資料不完整,一開始還懷疑是html 表單名稱有衝突,排除掉了。然後,網上找了一堆,php.ini 的post max size和upload max filesize都設定了很大的值,沒用,n...