一. 測試背景開發一個項目,資料庫用的是sqlserver。帳號表數據有一兩百萬,不算大,也不算小。在考慮是否要使用視圖,擔心效率,百度了下資料,眾說紛紜,好吧,實踐是最好的證明,那麼我們就來測試吧。 二. 測試環境WIN8系統,記憶體8G,普通磁碟,sqlserver2012 。 三. 表和視圖結構 ...
一. 測試背景
開發一個項目,資料庫用的是sqlserver。帳號表數據有一兩百萬,不算大,也不算小。在考慮是否要使用視圖,擔心效率,百度了下資料,眾說紛紜,好吧,實踐是最好的證明,那麼我們就來測試吧。
二. 測試環境
WIN8系統,記憶體8G,普通磁碟,sqlserver2012 。
三. 表和視圖結構(由於用的是公司的表,所以避免糾紛我把欄位給塗掉了)
四. 數據量大小
AccountsData表和AccountsInfo各有400萬數據,那麼視圖VAccounts毫無疑問也是400萬條數據。五. 開始測試
1. 我們查詢視圖的時候會利用到基礎表的索引嗎?這裡我利用UserID來做WHERE查詢1000條數據。下麵兩個截圖分表是查詢的結果,我們可以清楚到看到查基礎表AccountsInfo與查視圖VAccounts的效率是沒有差別的,所以我們可以確定查視圖同樣會利用到基礎表的索引。 2. 從上面的測試我們可以看到,利用索引查基礎表和視圖幾乎沒有什麼區別,那麼如果我們不利用索引欄位來查詢呢?比如Like。下麵是我查欄位Nickname帶有“南方1999”字元的數據記錄,從兩次結果我們可以清楚的看到兩次查詢幾乎沒有任何區別。
六. 測試結果
可以看到在sqlserver2012中視圖不會影響查詢效率,所以我們可以放心的使用。 by:https://blog.csdn.net/wanmdb/article/details/50358279