我正在编写PHP kohana应用程序,在其中的一部分我需要在表格中插入一些记录。
我的表结构:
TABLE BOOKINGS
id int
booked_object_id int
date_from date
date_tom date
此表包含大约10k条记录的预订对象。
现在在我的一个PHP函数中,我有一个包含新数据的数组,我想在此表中插入。执行我的功能时,大约需要插入20-30个新预订。
现在让我们来看看我的主要问题 - 我希望它检查我想要插入表中的任何预订是否已经被预订(object_id和date_from与我的php数组中的相同)。如果已经预订了任何一个,我的功能将不会在表格中插入任何新内容。
有没有比将mysql表的所有内容都放入PHP数组并检查20次(或我的插入数量)更有效的方法?
答案 0 :(得分:2)
如果您打算在表格中查找某个列,那么您应该将其编入索引。 这将创建一个db-server将用于查找行的哈希表。
至于进行20次调用的效率..您可以使用IN
语句选择1次调用中的所有现有记录,并在插入时忽略已存在的记录。
参考: