因爲我總是可以從原始表,而不是創建一個視圖,並利用從中選擇使用Select語句,我不知道什麼是使用視圖的好處數據庫?
10
A
回答
11
它簡化了調用並提供了一個間接層。
所以,如果你有一個複雜的選擇與大量的聯接,你可以在視圖中實現它,只需調用視圖,而無需考慮所有這些聯接。然後,您可以重新使用此視圖。
此外,如果您以這種方式使用視圖而不是表格,將來如果您需要遷移列,則可以輕鬆地進行此操作,並且只需要對視圖進行更改。
2
除了Oded提到的明顯好處之外,您還可以使用materialized views大幅度提高速度。來自wikipedia:
在關係模型之後的數據庫管理系統中,視圖是表示數據庫查詢結果的虛擬表。無論何時查詢或更新普通視圖的表,DBMS都會將這些轉換爲針對基礎表的查詢或更新。物化視圖採用不同的方法,將查詢結果緩存爲可能會從原始基表隨時更新的具體表。
1
有幾種,但我認爲主要的好處是視圖是邏輯數據獨立性的SQL實現。
構建一個可更新的視圖,並且使用該視圖的應用程序相對於基礎表中的更改是相對免疫的。更改基礎表的結構,更新視圖定義,並且所有應用程序都像沒有任何事情一樣工作。 (在舊版數據庫,可能有數以百計的書面幾十種語言的應用程序。這是大勝利。)
其他好處(意譯克里斯日期)
「自動」安全隱患的數據。限制對視圖的訪問,並且對誰看到什麼有精細的控制。
應用程序的「DRY」功能。視圖可以爲複雜的SELECT語句提供一個簡單的公共接口,因此應用程序只需SELECT column-list FROM my-easy-view
即可。
不同的用戶可以用不同的方式看到相同的數據。
相關問題
- 1. 使用數據庫抽象層有什麼好處?
- 2. 使用數據庫遊標有什麼好處?
- 3. 爲什麼使用數據庫視圖?
- 4. 在xPages中使用數據上下文有什麼好處?
- 5. 在大量數據庫中啓動MySQL數據庫id有什麼好處嗎?
- 6. 使用位圖有什麼好處嗎?
- 7. 將Razor視圖用作AngularJS視圖有什麼好處嗎?
- 8. 在嵌入式數據庫中使用JDBC連接池有什麼好處嗎?
- 9. 什麼數據庫對非結構化數據有好處
- 10. 在像SQL這樣的數據庫中存儲數據有什麼好處?
- 11. 在Sprite Kit中使用紋理圖譜有什麼好處?
- 12. 當我用EF6查詢數據庫時,使用LINQ有什麼好處?
- 13. 會員數據庫有什麼更好?
- 14. 在document.createElement('header')上使用html5shim庫有什麼好處嗎?
- 15. Sharepoint錯誤數據庫 - 有什麼好處?
- 16. junit測試的內存數據庫有什麼好處?
- 17. 提交Git對象數據庫有什麼好處?
- 18. 平面文件數據庫有什麼好處?
- 19. 在php中使用匿名函數有什麼好處?
- 20. 在java中,使用「new」初始化數組有什麼好處?
- 21. 使用varchar代替文本數據類型有什麼好處?
- 22. 使用包含類的數據的PrivateClass有什麼好處?
- 23. 在laravel 5的倉庫中使用構造函數注入有什麼好處?
- 24. 使用Hive作爲數據倉庫時對我的情況有什麼好處?
- 25. 與使用addSubView添加視圖相比,使用UINavigationController有什麼好處?
- 26. 在MySQL數據透視表中自動遞增主鍵有什麼好處嗎?
- 27. V13 Android支持庫有什麼好處?
- 28. 在使用熊貓導出數據框時使用ExcelWriter有什麼好處?
- 29. 這種數據庫建模稱爲什麼?它有什麼好處?
- 30. node.js - 使用玉器有什麼好處