在我們的項目中,我們最終通常會像3個表格一樣編寫複雜的連接。我們是否通過使用視圖獲得任何性能優勢,還是僅僅爲了讓查詢作者的生活更輕鬆?如果它很重要,我們使用MySQL。如果獲得了任何優勢(當然除了簡單的查詢),請點亮。通過使用VIEW而不是JOIN獲得任何性能優勢嗎?
5
A
回答
5
一般來說,普通視圖在運行查詢時不會提供太多的性能改進。然而,大多數數據庫系統,包括MySql(我相信......自從我使用它以來已經有一段時間了)提供某種索引或物化視圖功能。通常,這些視圖有相當多的限制是可行的,但是一旦創建,支持查詢的結果就會緩存在物理表中(對於SQL Server索引視圖,則是TempDB中的表)。數據庫服務器是然後負責跟蹤對基礎查詢的更改並更新緩存副本。針對這種索引/物化視圖的查詢通常要快得多,按查詢正常表的順序。
3
視圖只是邏輯表,與您在運行時運行相同的SQL沒有區別。唯一的區別是一種物化視圖,就像oracle的使用一樣,它就像一個緩存視圖。
+2
我想標記你的答案和jrista的答案一樣正確,但顯然只有一個答案可以標記爲這樣,所以我給你的答案投了贊成票。 – 2010-07-05 04:41:32
1
視圖(普通視圖)本身不提供性能優勢,除非使用了有很多限制的索引視圖(也稱爲物化視圖)。並非所有觀點都可以實現。
相關問題
- 1. 使用'unreachable!`vs`panic!`是否有任何性能優勢?
- 2. 通過LocationManager使用FusedLocationProviderApi是否有任何優勢?
- 3. 使用DirectorySearcher通過SearchRequest進行LDAP查詢有沒有任何性能優勢
- 4. 使用直接Rfc調用而不是BAPI有優勢嗎?
- 5. 通過使用Unity帶來了什麼性能優勢?
- 6. 如何評估使用JWT令牌而不是SAML的性能優勢?
- 7. 有使用按鈕而不是鏈接的優勢嗎?
- 8. Angular創建指令而不是使用ng-include的性能優勢是什麼?
- 9. 使用局部變量而不是全局變量在Python中獲得的性能優勢限制?
- 10. 使用apc_store vs apc_add的任何性能優勢(反之亦然)?
- 11. 使用線性代數而不是逐元素操作有優勢嗎?
- 12. 通過Web用戶控件使用通用處理程序的性能優勢
- 13. PUT和DELETE HTTP方法是否有任何性能優勢?
- 14. JavaScript:停止事件傳播是否有任何性能優勢?
- 15. 私人會員是否添加任何性能優勢?
- 16. .NET中的「鏈接」語句是否有任何性能優勢?
- 17. 通過JOIN獲得不同的特徵
- 18. 在休眠標準中使用readOnly是否有任何性能優勢?
- 19. 在數組上迭代使用Arrays.stream()是否有任何性能優勢?
- 20. 任何隊列工作者使用node.js而不是其他語言的優勢?
- 21. 使用哈希(#)而不是查詢字符串有沒有任何優勢
- 22. Ajax是否有任何優勢通過Json獲取數據類型XML?
- 23. 通過ReadChar使用SerialPort.ReadByte的優勢?
- 24. Silverlight是否比JavaScript有性能優勢?
- 25. 使用JOIN而不是HAVING(COUNT> n)來提高性能
- 26. 子查詢的可能性,而不是使用JOIN?
- 27. MySQL枚舉性能優勢?
- 28. 是怎麼過來的,使用的視圖,而不是片段優勢的Android
- 29. 使用多個端點的性能優勢或劣勢
- 30. 使用MIN MAX而不是通過普通代碼檢查範圍,在速度方面是否有優勢?
Thnx的澄清 – 2010-07-05 04:41:58