成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

MySQL索引深入理解底層數(shù)據(jù)結(jié)構(gòu)

davidac / 945人閱讀

摘要:定義索引是幫助高效排好序的數(shù)據(jù)結(jié)構(gòu)索引存儲(chǔ)在文件里形式二叉樹為什么用而不用二叉樹如果每次的數(shù)據(jù)都是以的形式添加,會(huì)造成二叉樹單邊增長(zhǎng),從而導(dǎo)致查詢效率依然低下紅黑樹會(huì)自己旋轉(zhuǎn),會(huì)有一個(gè)自平衡的過(guò)程,但是高度是不可控的如果是百萬(wàn)級(jí)別的數(shù)據(jù),高

定義:索引是幫助MYSQL高效排好序的數(shù)據(jù)結(jié)構(gòu)

索引存儲(chǔ)在文件里
形式:二叉樹 HASH BTREE
為什么用BTREE而不用二叉樹:


如果每次的數(shù)據(jù)都是以1,2,3,4,5,6的形式添加,會(huì)造成二叉樹單邊增長(zhǎng),從而導(dǎo)致查詢效率依然低下
紅黑樹會(huì)自己旋轉(zhuǎn),會(huì)有一個(gè)自平衡的過(guò)程,但是高度是不可控的,(height),如果是百萬(wàn)級(jí)別的數(shù)據(jù),高度是完全不可控的

為什么用BTREE而不用HASH:HASH如果是單個(gè)查找條件會(huì)比較快,比如col=3,直接用hash(index=3)即可,但是范圍查找的話效率很慢,大部分公司有很多業(yè)務(wù)都會(huì)是范圍查找

如果讓你來(lái)設(shè)計(jì)MySQL的BTREE,你覺得degree設(shè)為多少合適?
設(shè)為磁盤I/O一個(gè)節(jié)點(diǎn)的值,假如一次I/O最多取4k,就設(shè)為4k,作均衡
B+TREE的優(yōu)勢(shì):非葉子節(jié)點(diǎn)不存儲(chǔ)數(shù)據(jù),只存儲(chǔ)key

評(píng)價(jià)一個(gè)索引結(jié)構(gòu)好壞的標(biāo)準(zhǔn):磁盤I/O次數(shù)
預(yù)讀:磁盤一般會(huì)順序向后讀取一定長(zhǎng)度的數(shù)據(jù)(頁(yè)的整倍數(shù))放入內(nèi)存
局部性原理:如果一個(gè)數(shù)據(jù)被用到了,那他附近的數(shù)據(jù)也馬上會(huì)被用到
B+TREE的度一般會(huì)超過(guò)100,所以高度h會(huì)非常小(一般在3-5之間)
MyISAM索引實(shí)現(xiàn):MyISAM索引文件和數(shù)據(jù)文件是分離的 存儲(chǔ)引擎是表級(jí)別,不是數(shù)據(jù)庫(kù)級(jí)別


D-->Data I-->index
InnoDB-->聚集索引-->數(shù)據(jù)和索引是放在一起的-->是按主鍵索引構(gòu)建的一個(gè)BTREE樹
InnoDB-->推薦使用整型自增主鍵-->保證數(shù)據(jù)可以順序插入到當(dāng)前索引節(jié)點(diǎn)的后續(xù)位置,如果是用UUID,需要比較ASCII碼,還有可能插入的地方空間不足需要分裂開,花費(fèi)更多的時(shí)間
不建議使用過(guò)長(zhǎng)的字段作為主鍵,因?yàn)樗休o助索引都引用主索引,過(guò)長(zhǎng)的主索引會(huì)令輔助索引變得過(guò)大
為什么非主鍵索引結(jié)構(gòu)葉子節(jié)點(diǎn)存儲(chǔ)的是主鍵值?(一致性和節(jié)省存儲(chǔ)空間)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74873.html

相關(guān)文章

  • 如何"有計(jì)劃,高效率,優(yōu)簡(jiǎn)歷"應(yīng)對(duì)面試

    摘要:雖然有了十全的計(jì)劃,但如何高效率去記住上面那么多東西是一個(gè)大問(wèn)題,看看我是怎么做的。 前言 前一篇文章講述了我在三月份毫無(wú)準(zhǔn)備就去面試的后果,一開始心態(tài)真的爆炸,但是又不服氣,一想到每次回來(lái)后家人朋友問(wèn)我面試結(jié)果的期待臉,越覺得必須付出的行動(dòng)來(lái)證明自己了。 面經(jīng)傳送門:一個(gè)1年工作經(jīng)驗(yàn)的PHP程序員是如何被面試官虐的? 下面是我花費(fèi)兩個(gè)星期做的準(zhǔn)備,主要分三部分: 有計(jì)劃——計(jì)劃好...

    gyl_coder 評(píng)論0 收藏0
  • 后臺(tái)開發(fā)常問(wèn)面試題集錦(問(wèn)題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問(wèn)題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識(shí)點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類與三大特征時(shí)間和時(shí)間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對(duì)象鎖和類鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問(wèn)題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    spacewander 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<