我正在創建一個表格,它將突出顯示符合特定條件的數據。例如,如果我有一個具有整數值的表,我希望我的視圖顯示具有大於100的值的行。我知道如何通過在表上創建視圖來實現此目的,但視圖是動態的嗎?我已經在MySQL中測試過了,它似乎是真的。但是如果我的桌子有超過1000行,這是否有效?該視圖是否仍會「動態」更新原始表中的任何更改?MySql Views是否動態且高效?
19
A
回答
23
基本上,MySQL中基本上有2 types of views。
合併視圖
這種類型的觀點基本上只是與視圖的SQL重新寫你的查詢。所以這對於自己編寫查詢是一個短暫的手段。這不會提供真正的性能優勢,但可以使複雜查詢變得更輕鬆,並使維護變得更加輕鬆(因爲如果視圖定義更改,則不需要針對視圖更改100個查詢,而只需定義一個)。
不是Temptable查看
這種類型的視圖創建臨時表與視圖的SQL查詢。它具有合併視圖的所有優點,但也減少了視圖表上的鎖定時間。因此,在高負載的服務器上,它可能會有相當顯着的性能增益。
還有「未定義」視圖類型(默認值),這讓我們的MySQL挑它認爲在查詢時的最佳類型...
但需要注意的一些需要注意的重要的是, MySQL不支持materialized views。所以它不像甲骨文那樣複雜的觀點會顯着增加查詢的性能。視圖的查詢總是在MySQL中執行。
就效率而言,MySQL中的視圖不會增加或降低效率。在編寫和維護查詢時,它們可以讓您的生活更輕鬆。我已經在有數億行的表上使用了視圖,並且它們工作得很好......
+0
好的,這是有道理的。感謝ircmaxell! – Santiago 2011-02-03 14:39:11
9
mysql不會在臨時表上使用索引...所以它會嚴重影響您的性能。
相關問題
- 1. 這是否高效?
- 2. 高效的動態聚類
- 3. Perl Goatse'Secret Operator'是否高效?
- 4. OCaml - 操作是否高效?
- 5. java.util.regexp是否足夠高效?
- 6. 動態Javascript - 這是否有效?
- 7. CakePHP MySQL Views
- 8. MySQL高效且正確鏈接GROUP BY結果
- 9. MySQL:高效的Blobbing?
- 10. 創建間隔,並且返回是否有效
- 11. 高效地繪製動態對象
- 12. 高效的動態生成的Java GUI
- 13. MATLAB高效動態擴展原語
- 14. Haskell動態編程的高效表
- 15. 我的線程方法是否高效?
- 16. APR(Apache Portable Runtime)鉤子是否高效?
- 17. 數據庫的設計是否高效?
- 18. Google Cloud Spanner是否支持VIEWS
- 19. 什麼是高效且安全的Java RPC選項?
- 20. 在沒有使用CTE的情況下,此查詢是否存在邏輯上等效且高效的版本?
- 21. 用MySQL高效分頁
- 22. 更高效的查詢MYSQL
- 23. 更高效的MySQL語句?
- 24. 提高MySQL的效率
- 25. 高效的mysql查詢
- 26. MySQL的:高效的查詢
- 27. 高效的MySQL搜索
- 28. 高效的MySQL搜索
- 29. MySQL中高效而有效的分頁
- 30. 我的MySQL索引是否有效?
請參閱http://stackoverflow.com/q/7922675/632951 – Pacerier 2014-10-26 02:33:27