这是我的数据库结构的一个例子,我想知道创建搜索功能的最佳和最快的方法。
orders_users 表:
id || order_id || title || first_name || last_name || email || telephone
订单详情表:
id || transaction_id || date_time || status
目前我做以下查询:
SELECT * FROM orders_users WHERE last_name = '%QUERY%'
在此之后,我对第一个查询的结果执行 PHP foreach 以从第二个表中查询 date_time 和 status。(这是我的搜索结果页面所必需的)
SELECT * FROM orders_details WHERE id = '%ORDER_ID FROM FIRST QUERY%'
这对于不常见的名称很好,但如果我在大约 80k 行上搜索“smith”,它的速度很慢是可以理解的。
我想到的唯一另一种方法是用可搜索的列和结果填充一个单独的表,这只需要一个查询,如下所示:
id || order_id || last_name || date_time || status
如果可能的话,我不想走这条路,因为我真的不想用相同的数据更新多个表。
我敢肯定我的头脑没有直接考虑这个问题,我只需要一些指导。