同じ構造(id、var1、var2)の4つのテーブルがあります
var1 のテーブル 1 には単語が 1 つしかありません (150000 以上のレコード)
var1 のテーブル 2 には 2 つの単語があります (50000 以上のレコード)
var1 のテーブル 3 には 3 つの単語があります (50000 以上のレコード)
var1 のテーブル 4 には 4 つ以上の単語 (30000 以上のレコード) があります
それらを検索する最良の方法は何ですか?
私は次のように検索します:
SELECT * FROM (
(SELECT * FROM table1 WHERE var1 LIKE '".$searchWord."' ORDER BY var1)
UNION
(SELECT * FROM table2 WHERE var1 LIKE '".$searchWord." %' OR var1 LIKE '% ".$searchWord." %' OR var1 LIKE '% ".$searchWord."' ORDER BY var1)
UNION
(SELECT * FROM table3 WHERE var1 LIKE '".$searchWord." %' OR var1 LIKE '% ".$searchWord." %' OR var1 LIKE '% ".$searchWord."' ORDER BY var1)
UNION
(SELECT * FROM table4 WHERE var1 LIKE '".$searchWord." %' OR var1 LIKE '% ".$searchWord." %' OR var1 LIKE '% ".$searchWord."' ORDER BY var1)
) AS WHOLEDATABASE ORDER BY var1
");
これを行うのは、最初に 1 つの単語、次に 2 つ、次に 3 つという結果を表示したいからです。
この方法は非常に遅いため、これを行う他の方法はありますか。