婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > mysql索引基數(shù)概念與用法示例

mysql索引基數(shù)概念與用法示例

熱門標(biāo)簽:淄博400電話申請 電銷機(jī)器人 行業(yè) 電銷機(jī)器人各個細(xì)節(jié)介紹 昆明電信400電話辦理 電話機(jī)器人市場趨勢 南昌高頻外呼系統(tǒng)哪家公司做的好 俄國地圖標(biāo)注app 溫州瑞安400電話怎么申請 百度地圖標(biāo)注后不顯示

本文實例講述了mysql索引基數(shù)概念與用法。分享給大家供大家參考,具體如下:

Cardinality(索引基數(shù))是mysql索引很重要的一個概念

索引基數(shù)是數(shù)據(jù)列所包含的不同值的數(shù)量。例如,某個數(shù)據(jù)列包含值1、2、3、4、5、1,那么它的基數(shù)就是5。索引的基數(shù)相對于數(shù)據(jù)表行數(shù)較高(也就是說,列中包含很多不同的值,重復(fù)的值很少)的時候,它的工作效果最好。如果某數(shù)據(jù)列含有很多不同的年齡,索引會很快地分辨數(shù)據(jù)行。如果某個數(shù)據(jù)列用于記錄性別(只有”M”和”F”兩種值),那么索引的用處就不大。如果值出現(xiàn)的幾率幾乎相等,那么無論搜索哪個值都可能得到一半的數(shù)據(jù)行。在這些情況下,最好根本不要使用索引,因為查詢優(yōu)化器發(fā)現(xiàn)某個值出現(xiàn)在表的數(shù)據(jù)行中的百分比很高的時候,它一般會忽略索引,進(jìn)行全表掃描。慣用的百分比界線是”30%”

另一個概念叫做索引選擇性

索引選擇性=索引基數(shù)/數(shù)據(jù)總數(shù),基數(shù)可以通過“show index from 表名”查看。
越接近1就越有可能利用索引,也可以理解1為百分百
高索引選擇性的好處就是mysql查找匹配的時候可以過濾更多的行,唯一索引的選擇性最佳,值為1。

這里是我自己的一張表,數(shù)據(jù)量并不高,只是為了測驗索引選擇性

select * from articles
id 標(biāo)題 姓名
15 Title 0 大熊
16 Title 1 大熊
17 Title 2 大熊
18 Title 3 大熊
19 Title 4 大熊
20 Title 5 大熊
21 Title 6 大熊
22 Title 7 大熊
23 Title 8 二熊
24 Title 9 二熊

id為默認(rèn)整型自增主鍵

現(xiàn)在增加author列為索引并查看articles表的所有索引

ALTER TABLE `articles` ADD INDEX (`author`)
SHOW INDEX FROM articles
table non_unique key_name seq_in_index column_name collation cardinality sub_part packed null index_type
articles 0 PRIMARY 1 id A 10 NULL NULL  BTREE
articles 1 author 1 author A 2 NULL NULL  BTREE

說下各個字段的意義

  • table 表名
  • non_unique 如果索引不能包括重復(fù)詞,則為0。如果可以,則為1。
  • key_name 索引名
  • seq_in_index 索引中的列序列號,從1開始
  • column_name 列名
  • collation 列以什么方式存儲在索引中。在MySQLSHOW INDEX語法中,有值'A'(升序)或NULL(無分類)
  • cardinality 索引基數(shù)
  • sub_part 如果列只是被部分地編入索引,則為被編入索引的字符的數(shù)目。如果整列被編入索引,則為NULL。
  • packed 指示關(guān)鍵字如何被壓縮。如果沒有被壓縮,則為NULL。
  • null 如果列含有NULL,則含有YES。如果沒有,則該列含有NO。
  • index_type 所用索引存儲方法(BTREE, FULLTEXT, HASH, RTREE)

可以看到,表articles已經(jīng)有兩個索引了

id索引不包含重復(fù)詞 為主鍵 列名id 升序排列 索引基數(shù)為10 沒有部分索引 沒有壓縮 不含null 存儲方式為btree

author索引包含重復(fù)詞 索引名author 列名author 升序排列 索引基數(shù)為2 沒有部分索引 沒有壓縮 不含null 存儲方式為btree

根據(jù)索引選擇性的算法,id索引選擇性為10/10 =1 author索引選擇性為2/10=0.2, 下面咱們測試一下,使用explain看一下語句分析

explain select * from articles where id = 15
id select_type table partitions type possible_keys key key_len ref rows filtered extra
1 SIMPLE articles NULL const PRIMARY PRIMARY 4 const 1 100.00 NULL

這邊再說一下explain這個命令

explain顯示了mysql如何使用索引來處理select語句以及連接表??梢詭椭x擇更好的索引和寫出更優(yōu)化的查詢語句。說一下每個字段的意義

1.id SELECT識別符。這是SELECT查詢序列號。這個不重要,查詢序號即為sql語句執(zhí)行的順序

2.select_type select類型

2.1.SIMPLE 進(jìn)行不需要Union操作或不含子查詢的簡單select查詢時,響應(yīng)查詢語句的select_type 即為simple,無論查詢語句是多么復(fù)雜,執(zhí)行計劃中select_type為simple的單位查詢一定只有一個
2.2.PRIMARY 一個需要Union操作或含子查詢的select查詢執(zhí)行計劃中,位于最外層的select_type即為primary。與simple一樣,select_type為primary的單位select查詢也只存在1個
2.3.union 由union操作聯(lián)合而成的單位select查詢中,除第一個外,第二個以后的所有單位select查詢的select_type都為union。union的第一個單位select的select_type不是union,而是DERIVED。它是一個臨時表,用于存儲聯(lián)合(Union)后的查詢結(jié)果
2.4.DEPENDENT UNION dependent UNION select_type一樣,dependent union出現(xiàn)在union或union all 形成的集合查詢中。此處的dependent表示union或union all聯(lián)合而成的單位查詢受外部影響
2.5.union result union result為包含union結(jié)果的數(shù)據(jù)表

3.table 表名

4.type 連接類型,有多個參數(shù),先從最佳類型到最差類型介紹 也是本篇的重點(diǎn)

4.1 const,表最多有一個匹配行,const用于比較primary key 或者unique索引。因為只匹配一行數(shù)據(jù),所以很快,也可以理解為最優(yōu)化的索引,常數(shù)查找
4.2 eq_ref 對于eq_ref的解釋,mysql手冊是這樣說的:”對于每個來自于前面的表的行組合,從該表中讀取一行。除了const類型,這可能是最好的聯(lián)接類型”
4.3 ref 對于每個來自于前面的表的行組合,所有有匹配索引值的行將從這張表中讀取。如果聯(lián)接只使用鍵的最左邊的前綴,或如果鍵不是UNIQUE或PRIMARY KEY(換句話說,如果聯(lián)接不能基于關(guān)鍵字選擇單個行的話),則使用ref。如果使用的鍵僅僅匹配少量行,該聯(lián)接類型是不錯的
4.4 ref_or_null 該聯(lián)接類型如同ref,但是添加了MySQL可以專門搜索包含NULL值的行。在解決子查詢中經(jīng)常使用該聯(lián)接類型的優(yōu)化
4.5 index_merge 該聯(lián)接類型表示使用了索引合并優(yōu)化方法。在這種情況下,key列包含了使用的索引的清單,key_len包含了使用的索引的最長的關(guān)鍵元素
4.6 unique_subquery
4.7 index_subquery
4.8 range 給定范圍內(nèi)的檢索,使用一個索引來檢查行
4.9 index 該聯(lián)接類型與ALL相同,除了只有索引樹被掃描。這通常比ALL快,因為索引文件通常比數(shù)據(jù)文件小。(也就是說雖然all和Index都是讀全表,但index是從索引中讀取的,而all是從硬盤中讀的)
4.10 ALL 對于每個來自于先前的表的行組合,進(jìn)行完整的表掃描。如果表是第一個沒標(biāo)記const的表,這通常不好,并且通常在它情況下很差。通??梢栽黾痈嗟乃饕灰褂肁LL,使得行能基于前面的表中的常數(shù)值或列值被檢索出

5.possible_keys 提示使用哪個索引會在該表中找到行,不太重要

6.keys 指明MYSQL查詢使用的索引

7.key_len MYSQL使用的索引長度

8.ref 顯示使用哪個列或常數(shù)與key一起從表中選擇行

9.rows 顯示MYSQL執(zhí)行查詢的行數(shù),數(shù)值越大越不好,說明沒有用好索引

10.Extra 該列包含MySQL解決查詢的詳細(xì)信息

可以看到 id查詢 使用了id索引 簡單查詢 查詢類型為最優(yōu)的常量查詢
然后咱們換一個查詢試試,這次使用作者索引

explain select * from articles where author = "大熊"
1 SIMPLE articles NULL ALL author NULL NULL NULL 10 80.00 Using where

可以很清楚的看到 使用了author索引 簡單查詢 查詢類型為最差的全表掃描
先不急著解釋,還是這個語句,咱們換成二熊

explain select * from articles where author = "二熊"
1 SIMPLE articles NULL ref author author 1022 const 2 100.00 NULL

可以看到這次的查詢類型為ref

也就是說,因為作者為大熊的數(shù)據(jù)行數(shù),超過了總數(shù)據(jù)的百分之30 所以mysql認(rèn)為全表掃描比使用索引更快
這就是索引基數(shù)和索引選擇性這個概念的意義,所以在建立索引的時候,要注意要把索引建立在索引基數(shù)高的列上

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL索引操作技巧匯總》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》

希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。

您可能感興趣的文章:
  • 由不同的索引更新解決MySQL死鎖套路
  • 通過唯一索引S鎖與X鎖來了解MySQL死鎖套路
  • 分享幾道關(guān)于MySQL索引的重點(diǎn)面試題
  • Mysql中的索引精講
  • 新手學(xué)習(xí)MySQL索引

標(biāo)簽:葫蘆島 洛陽 安徽 吐魯番 甘南 嘉峪關(guān) 拉薩

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql索引基數(shù)概念與用法示例》,本文關(guān)鍵詞  mysql,索引,基數(shù),概念,與,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mysql索引基數(shù)概念與用法示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于mysql索引基數(shù)概念與用法示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产一区二区三区免费在线观看| 奇米777欧美一区二区| 亚洲成人动漫在线免费观看| 99精品欧美一区二区三区小说 | 日本v片在线高清不卡在线观看| 91九色最新地址| 一区二区三区在线观看欧美| 欧洲av在线精品| 亚洲国产精品久久一线不卡| 欧美日韩高清一区二区三区| 免费观看在线综合色| 久久久久久日产精品| 日本欧美在线看| 国产午夜精品理论片a级大结局 | 欧美无砖专区一中文字| 亚洲国产视频在线| 精品盗摄一区二区三区| 99r精品视频| 五月综合激情日本mⅴ| 久久久久久久久97黄色工厂| 一本一道波多野结衣一区二区| 日韩精品一二三| 国产精品剧情在线亚洲| 欧美日韩精品电影| 国产精品综合二区| 天天操天天色综合| 中文字幕第一区| 欧美不卡视频一区| 欧美日韩日日夜夜| thepron国产精品| 精品一区中文字幕| 亚洲精品欧美专区| 国产婷婷精品av在线| 欧美一区二区三区视频在线观看| 不卡一区二区三区四区| 免费日本视频一区| 亚洲中国最大av网站| 久久综合久久综合九色| 制服丝袜av成人在线看| 色婷婷久久99综合精品jk白丝| 狠狠色狠狠色合久久伊人| 亚洲国产一二三| 亚洲精品成a人| 国产精品不卡一区二区三区| 精品国产乱码久久久久久久久| 欧美三级在线播放| 国产91在线观看| 狠狠色综合日日| 久久99精品国产麻豆不卡| 午夜成人免费电影| 亚洲h动漫在线| 亚洲与欧洲av电影| 亚洲午夜久久久久久久久久久| 欧美国产一区在线| 精品va天堂亚洲国产| 日韩午夜在线观看视频| 欧美精品九九99久久| 欧美日韩精品一区视频| 欧美三级视频在线| 欧美日韩一二区| 欧美久久久一区| 欧美精选一区二区| 日韩无一区二区| 91精品中文字幕一区二区三区| 日韩一区二区在线观看视频播放| 欧美性三三影院| 欧美在线短视频| 91视视频在线观看入口直接观看www| 国产91富婆露脸刺激对白| 国产成人免费视频网站高清观看视频| 国产麻豆精品一区二区| 粉嫩13p一区二区三区| 韩国女主播一区| 粉嫩蜜臀av国产精品网站| 99在线精品一区二区三区| 99精品久久99久久久久| 在线视频你懂得一区| 在线不卡a资源高清| 欧美大白屁股肥臀xxxxxx| 精品成人免费观看| 最新国产成人在线观看| 一区二区久久久久| 青青草91视频| 国产宾馆实践打屁股91| 色婷婷久久一区二区三区麻豆| 欧美日韩国产小视频在线观看| 91精品国产免费| 日本一区二区视频在线观看| 国产精品高清亚洲| 日韩理论片中文av| 亚洲综合久久久| 秋霞午夜av一区二区三区| 国产98色在线|日韩| 欧美性一二三区| 久久久久久久综合日本| 亚洲免费观看高清| 六月丁香综合在线视频| 99久久婷婷国产综合精品电影| 国产成人免费高清| 欧美天堂亚洲电影院在线播放| 亚洲精品在线免费播放| 一区二区三区美女| 国产一区999| 91精品国产综合久久国产大片| 久久久久久一级片| 五月天久久比比资源色| 国产激情一区二区三区四区 | 91麻豆精品视频| 欧美成人国产一区二区| 亚洲另类在线视频| 国产精品一线二线三线| 91精品一区二区三区在线观看| 中文字幕色av一区二区三区| 国产尤物一区二区| 欧美一级电影网站| 一区二区三区免费网站| 91免费在线播放| 欧美国产视频在线| 国产综合色视频| 日韩午夜精品电影| 污片在线观看一区二区| 欧美性猛交xxxx乱大交退制版| 亚洲国产精品av| 国内精品自线一区二区三区视频| 欧美三级在线视频| 一区二区欧美视频| 91蜜桃在线观看| 国产精品国产自产拍高清av王其| 麻豆精品一区二区av白丝在线| 欧美日韩一区二区三区免费看| 亚洲欧美区自拍先锋| 色综合久久中文字幕综合网 | 中文字幕精品一区二区精品绿巨人 | 亚洲欧洲精品成人久久奇米网| 国产欧美一区二区精品性| 国产综合色产在线精品| 欧美白人最猛性xxxxx69交| 青青草国产成人99久久| 日韩欧美高清在线| 免费人成在线不卡| 精品国产sm最大网站| 久久99国产精品麻豆| 欧美成人一级视频| 国产精品白丝av| 中文字幕精品一区| 日本电影欧美片| 午夜精品福利一区二区三区av| 777亚洲妇女| 国产一区二区看久久| 久久久国产精华| 国产成人一级电影| 亚洲丝袜自拍清纯另类| 欧美日韩国产三级| 狠狠色丁香婷婷综合久久片| 国产天堂亚洲国产碰碰| aaa亚洲精品一二三区| 一区二区三区影院| 91精品久久久久久蜜臀| 久久国产成人午夜av影院| 久久久美女毛片| 91啪亚洲精品| 久久国产精品99久久久久久老狼| 久久久噜噜噜久噜久久综合| av综合在线播放| 日韩国产一二三区| 国产亚洲精品aa| 欧美调教femdomvk| 国产精品主播直播| 亚洲午夜一二三区视频| 久久久高清一区二区三区| 欧洲一区二区三区在线| 美女在线一区二区| 国产精品剧情在线亚洲| 日韩精品影音先锋| 99久久亚洲一区二区三区青草| 日韩精品欧美精品| 国产精品国产三级国产三级人妇| 欧美日韩一区二区三区免费看 | 欧日韩精品视频| 国产呦精品一区二区三区网站| 亚洲精品大片www| 精品国产乱码久久久久久久久| 欧美专区亚洲专区| av在线免费不卡| 国产在线视频一区二区三区| 亚洲一二三四区| 中文字幕一区二区日韩精品绯色| 日韩欧美卡一卡二| 欧美精品色综合| 在线国产电影不卡| 不卡高清视频专区| 国产精品69久久久久水密桃| 蜜臀av性久久久久av蜜臀妖精| 亚洲制服欧美中文字幕中文字幕| 国产精品视频一二| 国产日韩av一区| 国产日本一区二区| 国产色一区二区| 国产欧美一区二区精品秋霞影院 | 亚洲精品一区二区精华|