<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        DatabaseIndices_MySQL

        來源:懂視網 責編:小采 時間:2020-11-09 17:52:27
        文檔

        DatabaseIndices_MySQL

        DatabaseIndices_MySQL:數據庫table的index是建立在一個或多個column上的一個數據結構, 選定的一個或若干個column稱作index的key, 用來加快相應key所對應的record(tuple)的定位.從數據結構的角度來看, 索引是一個map, 將key映射到對應的record的指針. 索引能提供更好的查
        推薦度:
        導讀DatabaseIndices_MySQL:數據庫table的index是建立在一個或多個column上的一個數據結構, 選定的一個或若干個column稱作index的key, 用來加快相應key所對應的record(tuple)的定位.從數據結構的角度來看, 索引是一個map, 將key映射到對應的record的指針. 索引能提供更好的查
        數據庫table的index是建立在一個或多個column上的一個數據結構, 選定的一個或若干個column稱作index的key, 用來加快相應key所對應的record(tuple)的定位.

        從數據結構的角度來看, 索引是一個map, 將key映射到對應的record的指針. 索引能提供更好的查找性能, 關鍵之處在于, 一個block可以存儲的(key, pointer_to_record)是可以很多的, 要遠大于一個block存儲的record的個數, 這意味著查找過程中磁盤io可以大大減少.索引可以分為dense index和sparse index, 前者對于每個record都建立索引, 后者只對一個block上存儲的多個record中的某一個(如第一個)建立索引.

        最直接的構建索引想法就是將key所在的column提取出來, 排序之后存儲起來即可. 之后, 查找過程就可以二分來進行. 如果索引本身也比較大, 那進一步可以對索引再做索引, 沿著這個思路走下去, 就得到了B樹了, 下圖是一棵B+樹.

        Non-clusteredIndex:record本身不按照該index排序(當然, index內的key是排序的), 只不過index內的指針指向了不同的record位置.

        ClusteredIndex:record按照該index的key來排序, 即存儲在data block里面的record是按照這個index排序的. 換句話說,這個index的key決定了record是如何存儲的.

        實例分析

        MicrosoftSQL Server 2000

        1, 如何創建index,參見http://msdn.microsoft.com/en-us/library/aa258260(v=SQL.80).aspx

        2, SQL Server 2000中(后續版本未確認), 如果沒有創建 clustered index, 創建primary key的時候會自動創建clustered index. 更多關于clustered index, 參見

        3, clustered index與non-clusteredindex都是用B-tree實現的, 參見http://msdn.microsoft.com/en-us/library/aa174523(v=SQL.80).aspx

        與http://msdn.microsoft.com/en-us/library/aa174537(v=SQL.80).aspx

        4, Non-clustered index中, 如果這張表有clustered index, non-clustered index的pointer存儲的是clustered index key (因此clustered index key應該盡量小).

        MySQLInnoDB & MyISAM

        InnoDB的做法和上面提到的SQL Server的做法差不多:索引都是B樹, 用primary key當clustered index, secondary-index中的recordlocator是clustered index key等. 稍有不同的是, InnoDB在沒有合適的column充當cluster key的時候, 會自動創建一個column來作為cluster index key column, 參見http://dev.mysql.com/doc/refman/5.5/en/innodb-index-types.html

        MySQL的另一個存儲引擎, MyISAM, 做法就土了. MyISAM中, 沒有clusteredindex, 所有的record locator都直接指向record的位置. InnoDB與MyISAM在index上的對比參見http://www.xaprb.com/blog/2006/07/04/how-to-exploit-mysql-index-optimizations/

        ClusteredIndex與record的插入

        Clustered Index要求record按照cluster index key的值來排序, 因此, 插入過程首先是一個查找的過程, 找到對應的位置以后, 除了在data block中插入這個record(可能要引起block split, 因為這個block快滿了), 還要在index里也插入這個key,同樣也可能引起block split.

        同理, 刪除的時候也會有這樣的問題.

        也正是這個原因, SQL Server和InnoDB的secondary index的record locator存儲的都是clustered index key, 這樣, secondary index就獨立出去了, 不用每次更新都要更新所有的index. 代價是secondary index查完以后, 還要再拿得到的key再走一遍clusteredindex, 不過clustered index基本上都在內存里面了, 而且就是用來做快速訪問的(良好優化過了), 所以仍然是值得的.

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        DatabaseIndices_MySQL

        DatabaseIndices_MySQL:數據庫table的index是建立在一個或多個column上的一個數據結構, 選定的一個或若干個column稱作index的key, 用來加快相應key所對應的record(tuple)的定位.從數據結構的角度來看, 索引是一個map, 將key映射到對應的record的指針. 索引能提供更好的查
        推薦度:
        標簽: 數據庫 record mysql
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 暖暖免费高清日本中文| 九九精品免费视频| 亚洲日韩精品无码专区网站 | 亚洲欧洲日韩国产综合在线二区| 一级毛片**免费看试看20分钟 | 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲国产精品张柏芝在线观看| 222www在线观看免费| 亚洲天堂电影在线观看| 黄色免费网站网址| 激情综合亚洲色婷婷五月APP| 99久久免费精品国产72精品九九| 亚洲一久久久久久久久| 国产美女无遮挡免费网站| 猫咪免费人成网站在线观看入口 | 国产一级特黄高清免费大片| 理论片在线观看免费| 亚洲乱色熟女一区二区三区丝袜 | 红杏亚洲影院一区二区三区| h视频在线免费观看| 亚洲AV无码乱码国产麻豆穿越 | 亚洲AV无码国产剧情| 亚洲国产成人久久综合一区77 | 在线观看免费人成视频| 亚洲Av永久无码精品一区二区 | 久久久久亚洲精品日久生情| 免费看污成人午夜网站| 美女被免费网站在线视频免费| 国产亚洲精品不卡在线| 亚洲电影免费观看| 狠狠综合亚洲综合亚洲色| a毛片免费全部在线播放**| 亚洲国产高清视频在线观看| 在线观看免费精品国产| 一个人看的www在线免费视频| 久久久久亚洲AV无码麻豆| 在线观看无码的免费网站| 91视频精品全国免费观看| 亚洲色偷偷av男人的天堂| 成人伊人亚洲人综合网站222| 久久ww精品w免费人成|