データベースクエリをどの方法で使用するかを考えています。最近mysqlでPDOを使い始めました。メーカーをチェックし、各メーカーに対してアイテムをチェックする小さなスクリプトを書いています。アイテムを配列に配置して(1つのクエリのみを使用)、製造元の配列のループとして、array_count_valuesを使用してアイテムの数量を取得するか、ループで別のクエリを実行してアイテムをカウントする方が速いかどうか、私は立ち往生しています. 現在、約400のメーカーと70000のアイテムを持っています。
配列を使用した現在のコードは次のとおりです。
$itemquery = $conn->query("SELECT manufacturer FROM item_info_short");
$itemquery->execute();
$itemrow = $itemquery->fetchall(PDO::FETCH_ASSOC);
foreach ($itemrow as $itkey => $itvalue) {
$items[] = $itvalue[manufacturer];
}
$it_qty = array_count_values($items);
そして私のループのために:
$manu_query = $conn->query("SELECT manufacturer FROM manufacturers ORDER BY manufacturer");
while($rowsx = $manu_query->fetch(PDO::FETCH_ASSOC)){
$rowid = $rowsx[manufacturer];
$count = $it_qty[$rowid];
if($count == '') $count = 0;
echo "<option value=\"$rowsx[manufacturer]\">$rowsx[manufacturer] $count Items</option>";
}
ご覧のとおり、2 つの PDO クエリをまとめて使用しています。もう 1 つの方法では、401 クエリを使用します。
どの方法がベストプラクティスであるか、および/またはより速いかを確認しようとしています。
アドバイスをよろしくお願いします。