150000行を超える数値を持つ2つのテーブルがあり、次のコードがあります。
$q=$_GET["q"];
$negative = strlen($q);
$reverse = strrev($q);
while ($a = mysql_fetch_array($sql)) {
if (strlen($q) > 0)
{
$hint="";
for($i=0; $i<count($a); $i++)
{
if ($reverse==substr($a[$i],-$negative,strlen($q)))
{
if ($hint=="")
{
$hint=$a[$i];
}
}
}
}
echo $hint . "\t";
}
このクエリは結果を返すのに27秒かかり、すべての結果をシャッフルしたかったのですが、shuffle()関数を追加すると次のようになります。
while ($a = mysql_fetch_array($sql)) {
shuffle($a);
パフォーマンスは驚くほど変化し、結果を返すのに2秒しかかからず、同じことを何度も試しました。速くなりますか?