繁体   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