これは私のデータベース構造の例です。検索機能を作成する最善かつ最速の方法を知りたいです。
orders_users テーブル:
id || order_id || title || first_name || last_name || email || telephone
orders_details テーブル:
id || transaction_id || date_time || status
現在、次のクエリを実行しています。
SELECT * FROM orders_users WHERE last_name = '%QUERY%'
この後、最初のクエリの結果に対して PHP foreach を実行し、2 番目のテーブルから date_time と status をクエリします。(これは検索結果ページに必要です)
SELECT * FROM orders_details WHERE id = '%ORDER_ID FROM FIRST QUERY%'
これは珍しい名前には問題ありませんが、約 80k 行で「smith」を検索すると、当然のことながら遅くなります。
私が考えた他の唯一の方法は、次のように、1 つのクエリのみを必要とする検索可能な列と結果を別のテーブルに入力することです。
id || order_id || last_name || date_time || status
同じデータで複数のテーブルを更新したくないので、可能であればこのルートをたどらないことをお勧めします。
私の頭はこれについてまっすぐに考えていないと確信しています。ちょっとしたガイダンスが必要です。