-1

PHP kohanaアプリケーションをコーディングしていて、その一部でいくつかのレコードをテーブルに挿入する必要があります。

私のテーブル構造:

TABLE BOOKINGS
id int
booked_object_id int
date_from date
date_tom date

このテーブルには、予約されたオブジェクトを含む約10kのレコードがあります。

これで、PHP関数の1つに、このテーブルに挿入したい新しいデータを含む配列があります。私の関数が実行されるときに挿入する約20〜30の新しい予約があります。

次に、私の主な問題に取り掛かりましょう。テーブルに挿入したい予約のいずれかがすでに予約されているかどうかを確認したいと思います(object_idとdate_fromは私のphp配列と同じです)。いずれかがすでに予約されている場合、私の関数はテーブルに新しいものを挿入しません。

mysqlテーブルのすべての内容をPHP配列に取得し、それを20回(または挿入の数)チェックするよりも効率的な方法はありますか?

4

1 に答える 1

2

テーブル内の特定の列を検索することを計画している場合は、その列にインデックスを付ける必要があります。これにより、db-serverが行を検索するために使用するハッシュテーブルが作成されます。

また、20回の呼び出しの効率については、INステートメントを使用して1回の呼び出しで既存のすべてのレコードを選択し、挿入時に既存のレコードを単に無視することができます。

参照:

expr IN(値、...)

于 2013-01-29T12:31:48.377 に答える