これは私が説明できなかった非常に奇妙なことですが、おそらくあなたの何人かはすでに同じまたは同様の問題を見つけましたか?
次の疑似 PHP コードを想像してください。
<?PHP
mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("mydb");
$result = mysql_query("SELECT id, my_name FROM my_table");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$row[1] ? echo $row[1] : echo $row[0];
}
mysql_free_result($result);
?>
これは基本的に、mySQL サーバーにクエリを実行し、すべてのレコードセットを反復処理するだけです。次に、「省略形」の if ステートメントを使用して、 column に何かがあるかどうかを調べますmy_name
。ある場合はそれを印刷し、ない場合はid
代わりに を印刷します。
if{}else{}
ここで奇妙な点は、ESX5 で実行されている Debian Linux 仮想マシンで、この略記 if に通常のステートメントよりも 10 倍の時間がかかることです。
したがって、私の場合は 3 秒 (5000 レコードの反復) でしたが、この特定の VM では 30 秒かかりました。ESX4 Debian ホストで同じコードが問題なく実行されています。
省略形の IF を通常の IF ステートメントに置き換えれば、すべて問題ありません。
インターネットでいろいろ調べましたが、説明がわかりませんでした。問題の検索はどこから始めますか?
ありがとうございました!// マーカス