ユーザーの XML 入力 (通常は 20 から 100 程度の複数のレコード/アイテムを含む) を受け取り、それを解析して、レコードのデータベースと照合する PHP コードを作成しています。レコードがデータベースにない場合、PHP スクリプトはそれを INSERT する必要があります。レコードがデータベースにある場合、スクリプトは、ユーザーが [レコードを置換] チェックボックスをオンにしているかどうかに応じて、ユーザーの入力を破棄するか、そのレコードの UPDATE を実行する必要があります。
私の質問は、どちらが速いかということです.テーブル全体の一意性を判断する列を選択し、PHP でそれらを並べ替えるには? または、レコードごとに SELECT COUNT() FROM table WHERE name=(input name) AND region=(input region) を実行し、レコードが返されるかどうかを確認するには?
1 つの大きな SQL クエリ + かなりの PHP ソート時間、または 100 の小さな SQL クエリと 1 つの PHP 比較?
編集:人々は詳細を要求しているので、:
データベースのサイズ: 250 レコード以下インデックス付きの
列:まだインデックスを入れていませんが、製品版では名前と地域の列にインデックスを設定します。
返される SELECT の形式:大きな SELECT を実行すると、使用している DB クラス (WPDB) により、行オブジェクトの連想配列で返されます。
一意性を構成するもの:名前列と地域列によって、レコードが一意かどうかが決まります。名前と地域の組み合わせがデータベースにない場合、レコードは一意です。
たとえば、name:"Paris" region:"France"とname:"Paris" region:"Texas"は 2 つの一意のレコードです。ただし、name:"Paris" region:"France"とname:"Marseilles" region:"France"も同様です。