當前位置:
首頁 >
Column store index 列数据如何匹配成行数据?
發布時間:2025/3/21
42
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Column store index 列数据如何匹配成行数据?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQL?Server?2012引入了列存儲索引,對每列的數據進行分組和存儲,然后聯接所有列以完成整個索引。這不同于傳統索引,傳統索引對每行的數據進行分組和存儲,然后聯接所有行以完成整個索引。
在訪問基于行存儲的索引時,如果要查詢一個字段需要將整個Page讀入內存,所以默認會讀到所有行的數據:
通過上面的圖片可以看出,如果一個查詢只想查詢字段A的值,代價是讀取所有的頁面,包括了不需要的字段B,C,D,E。?
?
與行存儲模式相比,使用列存儲只需要讀取單獨的列數據,這樣可以減小IO的消耗,同時提供緩存的使用。
但是列存儲索引是如何在磁盤存儲的?如果我們只是將列的數據存儲在一起,如何在查詢的時候重新創建成行數據。
?
舉個例子:如果字段“名稱”存儲了“Kevin”和“Allen”兩個值,“生日”欄位存儲了“19650112”和“”19680415“。那么我們在查詢的時候如何能夠將Kevin和生日匹配起來。
?
答案是數據的位置標明它屬于哪一行。因此在“名稱”字段中行1存儲了“Kevin?“,在“生日”欄位中第一行對應的存儲了“19650112“。依次類推,這樣查詢的時候就可以將所有的欄位匹配為對應的行。
?
?
轉載于:https://blog.51cto.com/lzf328/1252919
總結
以上是生活随笔為你收集整理的Column store index 列数据如何匹配成行数据?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 自定义按钮实现 home
- 下一篇: UNIX网络编程——TCP/IP简介