カミジン@ファンタの平穏な日常 Blog

パソコン・カメラ・アニメがないと3日持ちません。そんな学生のダラダラ日記。

イラスト:con_cen_t

0「mysql_connect」と「mysql_pconnect」 どちらを使うか(PHP)

カテゴリー:PHP,サーバ

まずはPHPマニュアルをお読みください

http://php.net/manual/ja/function.mysql-connect.php

http://php.net/manual/ja/function.mysql-pconnect.php

pが頭につくとMySQLサーバへと持続的な接続が開始されます。
いちいちセッションを開き直さないで良いって言う考えはkeep aliveと似てますかね?
PHPのファイルを超えて接続を持続させます。
それで持続させることによってどれほどのタイムの差が出るのか検証してやりました。

 

実験環境

サーバ:onamae.com SD共有
PHP Version 5.2.12
MySQL 5.0.51a-log

 

コード

(真ん中辺りのmysql_connectを入れ替えて実験しました)

<?
$startTime = microtime(true);
$dbServer = '########';
$dbUser     = '########';
$dbPass     = '########';
$dbName     = '########';
$loop = 10000;
for( $i = 0; $i < $loop; $i++ ) {
if (!$link = mysql_connect($dbServer, $dbUser, $dbPass)) {
$flag = FALSE;
echo " 処理時間" . (microtime(true) - $startTime)  . '秒';
die ( "Data Base Error!! loop:$i/$loop" );
} else {
mysql_close( $link );
}
}
$endtime = microtime(true);
echo "正常に処理は終了しました loop:$i/$loop処理時間" . ( $endtime - $startTime)  . '秒';
?>

一万ループもテストしてすいませんね

まぁ昼間だしいいでしょ

てかもっと回したい

 

実験結果

mysql_connect

処理時間9.3142991065979秒 / 1万ループ

mysql_pconnect

処理時間1.9520409107208秒 / 1万ループ

差は「1万ループで7.3622581958771秒」となりました。

結構mysql_pconnect使えるかも

 

でも「同時接続数の制限」は絶対に忘れないでくださいね。

まぁ1DBでやってるなら全く問題ないとは思いますが。

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>