我有這樣的SQL查詢:中()子句中如何優化查詢,如select * from(where,a,b,c,d,e,f ....)中的字段?
SELECT * FROM table WHERE field IN (a,b,c,d,e,f,g,h....)
此列表的大小可能多達2000,該表是在SybaseIQ創建的視圖。據我所知,我無法在視圖中創建索引。 那麼有沒有其他可能的方法來優化這個查詢?
我有什麼現在通過谷歌找到:
- 使用union all代替的,這需要在工會所有的(最多2000),一個很長的名單
- 插入列表子句添加到表中並嘗試加入,但由於sybase IQ數據庫不屬於我,因此我無法執行此操作,因此我只能執行查詢。
在此先感謝。
也就是這樣:mysql還是sybase? – 2014-09-23 03:52:03
如果您真的需要這樣做是有效的,並且您受限於此方式,則可能需要將視圖複製到可以在其上創建表的本地數據庫中。聯盟不會更快,但有索引的單獨表格會。無論如何,視圖上的索引不會有幫助,無論如何,您需要它在列表中。 – 2014-09-23 04:14:02