日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql两种索引结构_19.Mysql索引结构及常见索引的区别

發(fā)布時間:2025/4/5 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql两种索引结构_19.Mysql索引结构及常见索引的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)載出:http://blog.csdn.net/qq_19557947/article/details/76951912

一、Mysql索引主要有兩種結(jié)構(gòu):B+Tree索引和Hash索引

Hash索引

mysql中,只有Memory(Memory表只存在內(nèi)存中,斷電會消失,適用于臨時表)存儲引擎顯示支持Hash索引,是Memory表的默認(rèn)索引類型,盡管Memory表也可以使用B+Tree索引。Hash索引把數(shù)據(jù)以hash形式組織起來,因此當(dāng)查找某一條記錄的時候,速度非常快。但是因為hash結(jié)構(gòu),每個鍵只對應(yīng)一個值,而且是散列的方式分布。所以它并不支持范圍查找和排序等功能。

B+Tree索引

B+Tree是mysql使用最頻繁的一個索引數(shù)據(jù)結(jié)構(gòu),是Inodb和Myisam存儲引擎模式的索引類型。相對Hash索引,B+Tree在查找單條記錄的速度比不上Hash索引,但是因為更適合排序等操作,所以它更受歡迎。畢竟不可能只對數(shù)據(jù)庫進(jìn)行單條記錄的操作。

帶順序訪問指針的B+Tree

B+Tree所有索引數(shù)據(jù)都在葉子節(jié)點上,并且增加了順序訪問指針,每個葉子節(jié)點都有指向相鄰葉子節(jié)點的指針。

這樣做是為了提高區(qū)間效率,例如查詢key為從18到49的所有數(shù)據(jù)記錄,當(dāng)找到18后,只要順著節(jié)點和指針順序遍歷就可以以此向訪問到所有數(shù)據(jù)節(jié)點,極大提高了區(qū)間查詢效率。

大大減少磁盤I/O讀取

數(shù)據(jù)庫系統(tǒng)的設(shè)計者巧妙利用了磁盤預(yù)讀原理,將一個節(jié)點的大小設(shè)為等于一個頁,這樣每個節(jié)點需要一次I/O就可以完全載入。

二、選擇索引的數(shù)據(jù)類型

Mysql支持很多數(shù)據(jù)類型,選擇合適的數(shù)據(jù)類型存儲數(shù)據(jù)對性能有很大的影響。

(1)越小的數(shù)據(jù)類型通常更好:越小的數(shù)據(jù)類型通常在磁盤、內(nèi)存和cpu緩存中都需要更少的空間,處理起來更快。

(2)簡單的數(shù)據(jù)類型更好:整形數(shù)據(jù)比起字符,處理開銷更小,因為字符串的比較更復(fù)雜。在MySQL中,應(yīng)用內(nèi)置的日期和時間數(shù)據(jù)類型,而不是字符串來存儲時間;以及用整形數(shù)據(jù)存儲IP地址。

(3)盡量避免NULL:應(yīng)該制定列為NOT NULL,除非你想存儲NULL。在MySQL中,含有空值的列很難進(jìn)行查詢優(yōu)化,因為他們使得索引、索引的統(tǒng)計信息以及比較運算更加復(fù)雜。

三、MySQL常見索引有:主鍵索引、唯一索引、普通索引、全文索引、組合索引

1,INDEX(普通索引):ALTER TABLE 'table_name' ADD INDEX index_name('col')

最基本的索引,沒有任何限制

2,UNIQUE(唯一索引):ALTER TABLE 'table_name' ADD UNIQUE('col')

與“普通索引”類似,不同的就是:索引列的值必須唯一,但允許有空值。

3,PRIMARY KEY(主鍵索引):ALTER TABLE 'table_name' ADD PRIMARY KEY('col')

是一種特殊的唯一索引,不允許有空值。

4,FULLTEXT(全文索引):ALTER TABLE 'table_name' ADD FULLTEXT('col')

僅可用于MyISAM和InoDB,針對較大的數(shù)據(jù),生成全文索引很耗時耗空間

組合索引:ALTER TABLE 'table_name' ADD INDEX index_name('col1','col2','col3')

為了更多的提高mysql效率可建立組合索引,遵循“最左前綴”原則。創(chuàng)建復(fù)合索引應(yīng)該將最常用(頻率)做限制條件的列放在最左邊,依次遞減。組合索引最左字段用in是可以用到索引的。相當(dāng)于建立了col1,col1col2,col1col2col3三個索引

四,索引使用注意事項

1,不要濫用索引

①,索引提高查詢速度,卻會降低更新表的速度,因為更新表時,mysql不僅要更新數(shù)據(jù),保存數(shù)據(jù),還要更新索引,保存索引

②,索引會占用磁盤空間

2,索引不會包含含有NULL值的列

復(fù)合索引只要有一列含有NULL值,那么這一列對于此符合索引就是無效的,因此我們在設(shè)計數(shù)據(jù)庫設(shè)計時不要讓字段的默認(rèn)值為NULL。

3,MySQL查詢只是用一個索引

如果where字句中使用了索引的話,那么order by中的列是不會使用索引的

4,like

like '%aaa%'不會使用索引而like "aaa%"可以使用索引

總結(jié)

以上是生活随笔為你收集整理的mysql两种索引结构_19.Mysql索引结构及常见索引的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人一区二区在线观看 | 久久精品牌麻豆国产大山 | 日韩成人在线观看 | 一区二区三区在线免费 | 欧美黑人一区二区 | 国产视频一区二区在线观看 | 小视频在线免费观看 | 欧美亚洲综合一区 | 欧美性猛交乱大交 | 国产精品九色 | 欧美成年人在线观看 | 吃奶摸下的激烈视频 | 男同精品 | 日韩欧美视频一区二区三区 | 亚洲成人免费av | 91丨porny丨刺激 | 久久无码国产视频 | 91久色 | 免费在线欧美 | 第四色影音先锋 | 亚洲狠| 在线观看你懂的网址 | www三级| 久久99精品视频 | 免看黄大片aa | 97超碰免费在线观看 | 人妻少妇精品一区二区三区 | 欧美网 | 亚洲一区你懂的 | 一级黄色片在线观看 | 成人午夜电影网站 | 人人干天天操 | 五月激情网站 | av超碰 | 国产精品久久久久久福利 | av网站一区 | 欧美日本精品 | 少妇无套内谢久久久久 | 理论片高清免费理伦片 | 天堂成人国产精品一区 | 十八岁世界在线观看高清免费韩剧 | 丰满少妇xbxb毛片日本 | 欧美另类老妇 | 欧美一区二区性久久久 | 国产剧情精品在线 | 成人在线免费高清视频 | 性高湖久久久久久久久免费 | 日日日日日日 | 国产福利视频一区 | 国产专区一 | 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 蜜桃视频日韩 | 成人精品免费在线观看 | 99riav1国产精品视频 | 国产呻吟av| 国产免费一级视频 | 国产不卡视频在线播放 | 在线观看免费国产 | 中国黄色片视频 | 日本人妻换人妻毛片 | 米奇影视第四色 | 黄色片网站在线观看 | 中文字幕伦理 | 一起草视频在线播放 | 少妇人妻一区二区三区 | 色婷婷社区 | 99久久亚洲精品日本无码 | 欧美成人视 | 欧美另类z0zx974| 一区二区在线观看av | 日本一级免费视频 | 男人操女人的免费视频 | 欧美一区二区三区粗大 | 日韩欧美精品一区二区 | 国产男女猛烈无遮挡免费观看网站 | 99久久婷婷 | 精品国产亚洲一区二区麻豆 | 亚洲男人天堂电影 | 91在线视频在线观看 | 韩国黄色网址 | 国产精品一区视频 | 亚洲性大片 | 欧美一级在线视频 | 91蝌蚪九色 | 在线精品视频播放 | 国产精品日韩一区二区三区 | 熟女自拍一区 | 天天干狠狠爱 | 操操操爽爽爽 | 影音先锋久久久 | 欧美日韩成人一区二区在线观看 | 亚洲午夜精品 | 亚洲91av| 少妇人禽zoz0伦视频 | 高跟肉丝丝袜呻吟啪啪网站av | 欧美网站免费 | 少妇性l交大片 | jizz一区二区 | 欧美三级午夜理伦三级小说 |