欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

mysql中B樹和哈希索引有什么區(qū)別

小編給大家分享一下MySQL中B樹和哈希索引有什么區(qū)別,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

目前創(chuàng)新互聯(lián)已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、芷江網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

  

前言:了解B樹和哈希數(shù)據(jù)結(jié)構(gòu)有助于預(yù)測查詢在這些使用不同索引數(shù)據(jù)結(jié)構(gòu)的存儲引擎上的執(zhí)行情況,特別是對于MEMORY存儲引擎,它是允許您選擇B樹或哈希作為索引的存儲引擎。

1. B樹指數(shù)特征

B樹索引可以在使用表達式中使用的對列的比較 =, >, >=, <, <=,或BETWEEN關(guān)鍵字。如果使用LIKE 或to LIKE且是一個不以通配符開頭的常量字符串,則索引也可用于比較 。

1.例如,以下SELECT語句將使用索引:

SELECT * FROM tbl_name WHERE key_col LIKE 'Patrick%';
SELECT * FROM tbl_name WHERE key_col LIKE 'Pat%_ck%';

在第一個語句中 'Patrick' <= key_col < 'Patricl',在第二個語句中'Pat' <= key_col < 'Pau'

2.以下SELECT語句不使用索引:

SELECT * FROM tbl_name WHERE key_col LIKE '%Patrick%';
SELECT * FROM tbl_name WHERE key_col LIKE other_col;

在第一個語句中,LIKE 值以通配符開頭。在第二個語句中,該LIKE值不是常量。

如果使用了像'%string%'且長度超過三個字符的字符串查詢,那么MySQL將使用Turbo Boyer-Moore算法初始化這個模型,用這個模型來匹配速度會更快.

不跨越子句中的所有AND級別的 任何索引 WHERE不用于優(yōu)化查詢。換句話說,為了能夠使用索引,必須在每個AND組中使用索引的前綴 。

3.以下WHERE子句使用索引:

WHERE index_part1=1 AND index_part2=2 AND other_column=3

    /* index = 1 OR index = 2 */
WHERE index=1 OR A=10 AND index=2

    /* optimized like "index_part1='hello'" */
WHERE index_part1='hello' AND index_part3=5

    /* Can use index on index1 but not on index2 or index3 */
WHERE index1=1 AND index2=2 OR index1=3 AND index3=3;

4.這些WHERE子句 不使用索引:

    /* index_part1 is not used */
WHERE index_part2=1 AND index_part3=2

    /*  Index is not used in both parts of the WHERE clause  */
WHERE index=1 OR A=10

    /* No index spans all rows  */
WHERE index_part1=1 OR index_part2=10

有時MySQL不使用索引,即使有索引也是如此。發(fā)生這種情況的一種原因是,優(yōu)化器估計使用索引將需要MySQL訪問表中非常大比例的行。(在這種情況下,表掃描可能會快得多,因為它需要的搜索次數(shù)較少。)但是,如果這樣的查詢:例如LIMIT只用于檢索某些行,那么MySQL無論如何都會使用索引,因為它可以更快地找到在結(jié)果中返回幾行。

2. 哈希指數(shù)特征

散列索引與剛才討論的特征有些不同:

它們僅用于使用=或<=>(文章結(jié)尾有此符號說明) 運算符的相等比較 (但速度非??欤K鼈儾挥糜诒容^運算符,例如 <找到一系列值。依賴于這種類型的單值查找的系統(tǒng)被稱為“ 鍵值存儲 ” ; 要將MySQL用于鍵值查找類,請盡可能使用哈希索引。

優(yōu)化器無法使用哈希索引來加速 ORDER BY操作。(此類索引不能用于按順序搜索下一個條目。)

MySQL無法確定兩個值之間大約有多少行(范圍優(yōu)化器使用它來決定使用哪個索引)。如果將 MyISAM或 InnoDB表更改為哈希索引 MEMORY表,則可能會影響某些查詢。

只有整個鍵可用于搜索行。(使用B樹索引,鍵的任何最左邊的前綴都可用于查找行。)

附錄

解釋=和<=>的區(qū)別:

相同點:像常規(guī)的=運算符一樣,兩個值進行比較,結(jié)果是0(不等于)或1(相等),換句話說:’A'<=>’B'得0和’a'<=>’a‘得1,都是值的比較。
不同點:NULL的值是沒有任何意義的。所以=號運算符不能把NULL作為有效的結(jié)果。所以:請使用<=>,'a' <=> NULL 得0   NULL<=> NULL 得出 1。和=運算符正相反,=號運算符規(guī)則是 'a'=NULL 結(jié)果是NULL 甚至NULL = NULL 結(jié)果也是NULL。順便說一句,mysql上幾乎所有的操作符和函數(shù)都是這樣工作的,因為和NULL比較基本上都沒有意義。

用處當(dāng)兩個操作數(shù)中可能含有NULL時,你需要一個一致的語句,此時就可以用<=>.

以上是“mysql中B樹和哈希索引有什么區(qū)別”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章標題:mysql中B樹和哈希索引有什么區(qū)別
本文鏈接:http://aaarwkj.com/article46/ipopeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站維護網(wǎng)站制作、全網(wǎng)營銷推廣網(wǎng)站策劃、移動網(wǎng)站建設(shè)

廣告

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

成都做網(wǎng)站
麻豆国产97在线精品一区| 国产裸体无遮挡免费精品| 亚洲精品二区在线播放| 亚洲欧美日韩国产99| 亚洲成人日韩欧美在线| 久草福利在线观看免费| 91一区二区三区在线| 最新日本欧美一区二区| 久久亚洲精品国产精品黑人| 国产真人免费作爱视频网站| 人妻熟女一区二区aⅴ在线视频| 日本不卡视频二区三区| 天天操操操操操操夜夜爽| 久久综合午夜福利视频| 精品国产伦一区二区三区在线| 亚洲男人av天堂东京热| 日韩av天堂免费网站| 美女在线免费观看av| 欧美成人精品午夜一区二区| 亚洲av乱码一区二区三区观影| 国产成十人十综合十亚洲| 亚洲精品a在线观看av| 婷婷久久香蕉五综合加勒比| 看看美女阴逼毛茸茸的| 麻豆专区一区二区三区| 国产白丝诱惑在线视频| 91高清视频在线免费观看| 日进去了啊内射视频| 成熟人妻一区二区三区人妻| 啊啊啊用力好大视频| 中文字幕日韩精品亚洲精品 | 成人性生交大片免费看中文 | 背德人妻中文字幕无修| 国内精品人妻在线中文字幕| 亚洲精品日本一区二区| 日韩欧美一区二区不卡在线| 在线播放亚洲一区二区三区| 禁区正片免费看完整国产| 国产白丝诱惑在线视频| av东京热免费看一区| 加勒比在线观看欧美一区|