真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Mysql索引如何優(yōu)化

小編給大家分享一下MySQL索引如何優(yōu)化,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)建站憑借專業(yè)的設(shè)計(jì)團(tuán)隊(duì)扎實(shí)的技術(shù)支持、優(yōu)質(zhì)高效的服務(wù)意識(shí)和豐厚的資源優(yōu)勢(shì),提供專業(yè)的網(wǎng)站策劃、成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站優(yōu)化、軟件開(kāi)發(fā)、網(wǎng)站改版等服務(wù),在成都10年的網(wǎng)站建設(shè)設(shè)計(jì)經(jīng)驗(yàn),為成都上1000家中小型企業(yè)策劃設(shè)計(jì)了網(wǎng)站。

編程沉思錄                           Mysql索引如何優(yōu)化

B+Tree的特點(diǎn)是,數(shù)據(jù)都存儲(chǔ)在葉子節(jié)點(diǎn),并且每個(gè)葉子節(jié)點(diǎn)的數(shù)據(jù)都是按相同順序(升序或降序)排列存儲(chǔ)的,再者相鄰的葉子節(jié)點(diǎn)都用指針連接在一點(diǎn),這種結(jié)構(gòu)非常適合于范圍查找。

B-Tree索引能夠顯著加快訪問(wèn)數(shù)據(jù)的速度,因?yàn)榇鎯?chǔ)引擎不再需要進(jìn)行全表掃描來(lái)獲取需要的數(shù)據(jù),而是從索引的根節(jié)點(diǎn)逐層往下進(jìn)行搜索,這大大縮小了存儲(chǔ)引擎掃描數(shù)據(jù)的范圍,因此對(duì)查詢速度的提升非常明顯。

2)Hash索引

Hash索引,顧名思義,就是通過(guò)哈希表實(shí)現(xiàn)的索引。其特點(diǎn)是只有精確匹配索引的所有列才有效。對(duì)于每一行數(shù)據(jù),存儲(chǔ)引擎都會(huì)對(duì)所有索引列計(jì)算一個(gè)哈希碼,Hash索引把哈希碼存儲(chǔ)在索引中,同時(shí)在哈希表中保存指向每個(gè)數(shù)據(jù)行的指針。

在Mysql中,目前只有Memory引擎顯式支持Hash索引,而且由于Hash索引不支持范圍查找,也不支持排序,更不支持部分索引列匹配查找,所以Hash索引用的比較少。

下文將著重介紹B-Tree索引的用法。

為了下文敘述方便,我們將假設(shè)有一個(gè)user表,其字段如下:

id:bigint類型,主鍵

name:varchar類型

age:int類型

interest:varchar類型

并且在name、age、interest上建立了一個(gè)聯(lián)合索引index_1,索引順序?yàn)椋╪ame,age,interest),這個(gè)索引順序非常重要,后文將會(huì)提及。

二、B-Tree索引的用法

1)全值匹配

全值匹配指的是和索引中所有列進(jìn)行匹配,如對(duì)上述user表查詢 where name='aaa' and age=20 and interest='籃球' 是可以使用到索引的所有列的。

2)匹配最左前綴

匹配最左前綴是指只使用到多列索引的左邊若干列。如對(duì)上述user表查詢 where name = 'aaa' 是可以使用到索引的,并且只使用到索引的第一列。

3)匹配列前綴

匹配列前綴是指只匹配某一列的開(kāi)頭部分,如對(duì)上述user表查詢 where name like 'aaa%' 是可以使用到索引的,注意是匹配列的開(kāi)頭部分,如果查詢的是 where name like '%aaa'就不能使用到索引了。

4)匹配范圍值

如對(duì)上述user表查詢 where name > 'aaa' and name < 'bbb' 也是可以使用到索引的。

5)精確匹配某一列并范圍匹配另外一列

如對(duì)上述user表查詢 where name='aaa' and age >10,可以使用到索引,并且使用到索引的前2列。

三、B-Tree索引的限制

1)如果不是按照索引的最左列開(kāi)始查找,則無(wú)法使用索引。

如對(duì)上述user表查詢 where age=20則無(wú)法使用到索引,因?yàn)閍ge不是索引列中的最左數(shù)據(jù)列。

2)不能跳過(guò)索引中的列。

如對(duì)上述user表查詢 where name='aaa' and interest='足球',則只能使用到索引的第一列,因?yàn)閣here條件中沒(méi)有包含age這一列。

以上是“Mysql索引如何優(yōu)化”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)站名稱:Mysql索引如何優(yōu)化
分享地址:http://weahome.cn/article/jdschd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部