1
我想通過姓名1或NAME2從數據庫中的兩個表進行查詢。MySQL的高效的多表多指標選擇
重要信息:只有一些名字有一個與之相關的二次名2。
的表格N1和N2如下:
table n1
|---------------*----------------*-----------------|
| id | name1 | n2_id |
|---------------*----------------*-----------------|
| 1 | Joseph | 1 |
| 2 | David | NULL |
| 3 | James | 2 |
|---------------*----------------*-----------------|
table n2
|---------------*----------------|
| id | name2 |
|---------------*----------------|
| 1 | Joe |
| 2 | Jim |
|---------------*----------------|
(我知道我可能只是創造了N1表中的名稱2場,但是這僅僅是一個更復雜的系統簡化需要這種結構)
我目前從表N1選擇如下:
SELECT id, name1, MATCH (name1) AGAINST ("+joe*") AS score
FROM n1
WHERE MATCH (name1) AGAINST ("+joe*" in boolean mode)
order by score desc;
這工作非常有效地與一個非常大的表。
不過,我想從n1和n2選擇,匹配名1或NAME2(當它存在的話)對搜索字符串,就好像兩個表合併。
的問題是,我有一個選擇的效率,通過綜合評分訂單時,有跨多個表不同的索引問題。
這個問題是不是真的只是如何構建SELECT。這是關於如何構建SELECT以使索引得到有效使用的方式。 (表是非常大的)