我不是SQL中的專業人員:) 存在非常關鍵的性能問題。 以下是與問題直接相關的信息。PostgreSQL多個'WHERE'條件(1000+)請求
我在我的DB-表condos
和表goods
有2個表。
表condos
有字段:
- ID(PK)
- 名
- 城市
- 國家
表項目:
- ID(PK)
- 名
- 多個領域不涉及發行
- condo_id(FK)
我有condos
表1000+實體和items
表1000+。
的問題是我怎麼物品進行搜索
目前,它是:
例如,我想所有的物品爲city = Sydney
- 執行
SELECT condos.condo_id FROM public.condos WHERE city = 'Sydney'
- 爲我在步驟1中獲得的每個
condo_id
製作一個SELECT * FROM public.items WHERE item.condo_id = ?
。
問題是,一旦我在condos
表中獲得了1000多個實體,則對於屬於「悉尼」的每個condo_id
,該請求將執行1000次以上。而這個請求的執行需要2分鐘以上,這是一個關鍵的性能問題。
所以,的問題是:
什麼是對我進行這樣的搜索的最佳方式?我應該把1000+身份證放在單個WHERE
請求中嗎?要麼?
對於添加信息,我使用PostgreSQL 9.4和Spring MVC。
您知道表連接的區域?從你的問題看,你不是,如果不是,你需要了解他們。這正是聯接想要解決的問題類型。 –