接合相同的表,如果我有兩個表條目和entry_metadata,與entry_metadata作爲通過entry_id和變量引用的條目的說明表。PostgreSQL的:替代多次
,如果我有這樣的:
進入
id | name |
-------------
1 | entry1 |
2 | entry2 |
3 | entry3 |
entry_metadata
id | entry_id | variable | value
1 | 1 | width | 10
2 | 1 | height | 5
3 | 2 | width | 8
4 | 2 | height | 7
5 | ... | .... | ..
和我越來越表:
id | name | width | height| ... | ...
-----------------------------------------
1 | entry1 | 10 | 5 |
2 | entry2 | 8 | 7 |
3 | entry3 | .. | .. |
由SQL:
select e.name, em.width, emr.height
from
public.entry e
left join
public.entry_metadata em
on
em.entry_id = e.id and em.variable = 'width'
left join
public.entry_metadata emr
on
emr.entry_id = e.id and emr.variable = 'height'
上述作品查詢。但是,當我添加更多變量來從條目元數據中獲取值(entry_metadata表包含各種各樣的變量)時。查詢變得非常慢。我所做的每個連接都會大大減慢執行速度。有沒有辦法解決這個問題?
這會比連接替代方案更快嗎? – muffin
@muffin。 。 。您需要在數據和系統上嘗試它。有很多專欄,它可能會更快,但沒有保證。 –