成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

MYSQL中NULL走不走索引

本篇內(nèi)容主要講解“MySQL中NULL走不走索引”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“MYSQL中NULL走不走索引”吧!

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出東勝免費(fèi)做網(wǎng)站回饋大家。

首先的先標(biāo)準(zhǔn)化一些事情

1 數(shù)據(jù)表到底是哪種格式 (DYNAMIC)

2 此種格式的特點(diǎn),以及NULL 在這樣存儲(chǔ)格式是怎么進(jìn)行處理的

Dynamic 這種行的存儲(chǔ)格式有一些特點(diǎn)

1 所有的字符串的值大于 4 的都是動(dòng)態(tài)的

2 每一行前都有一個(gè)位圖,位圖指示哪些列包含空字符串或零。如果字符串列在刪除尾隨空間后長(zhǎng)度為零,或者數(shù)字列的值為零,則在位圖中標(biāo)記它,而不是保存到磁盤(pán)。非空字符串保存為長(zhǎng)度字節(jié)加上字符串內(nèi)容。

3 空列需要行中額外的空間來(lái)記錄它們的值是否為空。

從上面的話,總結(jié)出來(lái)一句話,NULL 需要額外的空間來(lái)保存他,對(duì)比在你的字段里面'' 或者  0 來(lái)表明默認(rèn)值,NULL 比他們更浪費(fèi)空間。

在MYSQL5.7中NULL 是可以用\N  來(lái)代表NULL ,但在MYSQL 8 中被廢棄了,NULL 就是NULL 來(lái)代表。

這里有一個(gè)問(wèn)題,提出NULL 不好,而要表設(shè)計(jì)中盡量不為空的依據(jù)是哪里來(lái)的。我們可以根據(jù)官方文檔中的一段話來(lái)說(shuō)明。

MYSQL中NULL走不走索引

其中有幾句,不使用NULL,可以

1  更好的使用INDEX 

2  節(jié)省空間

3  加速SQL 的運(yùn)行

OK,那我們就來(lái)做一下實(shí)驗(yàn),看看怎么來(lái)證明使用NULL 到底能不能走索引

MYSQL中NULL走不走索引

從上圖來(lái)看,查詢空值是可以走索引的。那我們換只用寫(xiě)法我們差 is not null

看上去的確是is not null是不能走索引,但實(shí)際上是這樣的嗎,是數(shù)量引起的全表掃描,還是is not null引起的問(wèn)題?

MYSQL中NULL走不走索引

下面的實(shí)驗(yàn)證明 is not null也是可以走索引的,而is not null 無(wú)法走索引的情況和平時(shí)其他走不了索引的情況是一樣的,主要還是看cost 成本計(jì)算。

MYSQL中NULL走不走索引

如果是OR 條件中 使用 is null or  is null ,從下圖看是可以走索引的

MYSQL中NULL走不走索引

按照索引的原理,二級(jí)索引的值是可以為NULL, 而索引的列值為NULL 的二級(jí)索引記錄來(lái)說(shuō),B+樹(shù)種的NULL 的值存在哪里,一般來(lái)說(shuō)是B+樹(shù)的最左邊。

我們繼續(xù)進(jìn)行測(cè)試,如果將部分條件和 is not null聯(lián)合進(jìn)行查詢,從下圖看也是會(huì)走相關(guān)索引的。

MYSQL中NULL走不走索引

所以上面的實(shí)驗(yàn)證明了, is null , is not null  都是可以走相關(guān)的索引的,如果不走索引要不就是相關(guān)走INDEX 的成本比全表掃描還高,要不就是索引可能失效,或統(tǒng)計(jì)分析出了問(wèn)題。

到此,相信大家對(duì)“MYSQL中NULL走不走索引”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

當(dāng)前文章:MYSQL中NULL走不走索引
本文URL:http://jinyejixie.com/article0/psepio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)微信公眾號(hào)、網(wǎng)站導(dǎo)航做網(wǎng)站、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)
勐海县| 青田县| 南阳市| 普兰县| 西丰县| 札达县| 安庆市| 孝义市| 绿春县| 宁陵县| 台北县| 光山县| 大厂| 华亭县| 澄江县| 渝北区| 安平县| 崇左市| 阿瓦提县| 阿瓦提县| 抚顺县| 新密市| 四会市| 西吉县| 穆棱市| 安陆市| 富平县| 隆昌县| 道孚县| 徐闻县| 揭阳市| 宣汉县| 兰考县| 锡林浩特市| 治县。| 潜山县| 鄂托克前旗| 闻喜县| 碌曲县| 民权县| 文安县|