テーブルarseh
はすべてのフィールドがプライマリキーであるテーブルがあります。すべてのフィールドにはインデックスがあります。それは10,000,000レコードを持っています。テーブルから10,000回以上選択する
Arseh Table ------------------------------ |Code|ID|FromYear|ToYear| ----------------------------- |1 |1 |1350 |1395 | |2 |1 |1355 |1366 | |2 |10|1395 |1395 |
PHPは
function Calc($Code,$ID,$FromYear,$ToYear){
$Handler = new DB();
$Result=$Handler->query("select * from arseh where Code='".$Code."' and ID=".$ID." and FromYear='".$FromYear."' and ToYear='".$ToYear."'");
return $Result;
}
私は違うとランダムパラメータを持つ万回以上の関数のCalcを呼び出す必要があります。
問題:このシナリオ(Calcを10,000回呼び出す)には20秒かかることがあります。この時間をどのように減らすことができますか?
テーブルの配列全体のデータを配列に一度に挿入し、配列内で他の時間を検索するのではなく、テーブルから選択する方が良いですか?
テーブルのインデックスはどのようになっていますか? –
DBは呼び出されるたびに新しいデータベース接続を作成しますか?すでに設定されている場合は既存のデータベース接続を使用しますか? –
すべてのフィールドにインデックス – ashkufaraz