簡體   English   中英

如何有效地檢查記錄是否存在於mysql表中?

[英]How to efficiently check if record exists in mysql table?

我正在編寫PHP kohana應用程序的代碼,在其中的一部分中,我需要在表中插入一些記錄。

我的表結構:

TABLE BOOKINGS
id int
booked_object_id int
date_from date
date_tom date

該表大約有1萬條包含已預訂對象的記錄。

現在,在我的PHP函數之一中,我有了一個包含新數據的數組,我想將其插入此表中。 執行我的功能時,大約需要插入20-30個新的預訂。

現在讓我們解決我的主要問題-我希望它檢查是否要預訂要插入表中的任何預訂(object_id和date_from與我的php數組中的相同)。 如果其中任何一個已被預訂,我的函數將不會在表中插入任何新內容。

有沒有比將mysql表的所有內容放入PHP數組並檢查20次(或插入次數)更有效的方法?

如果打算在表中查找某個列,則應為其建立索引。 這將創建一個哈希表,數據庫服務器將使用該哈希表查找行。

至於提高20個調用的效率,您可以使用IN語句在1個調用中選擇所有現有記錄,而在插入時僅忽略已存在的記錄。

參考:

expr IN(值,...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM