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

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

MYSQL(一)數(shù)據(jù)庫(kù)索引類型,索引優(yōu)點(diǎn)

索引在MySQL中也叫做鍵(key),是存儲(chǔ)引擎用于快速找到記錄的一種數(shù)據(jù)結(jié)構(gòu)。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),漳平企業(yè)網(wǎng)站建設(shè),漳平品牌網(wǎng)站建設(shè),網(wǎng)站定制,漳平網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,漳平網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

索引結(jié)構(gòu)類型(常見(jiàn)有兩種):

1. B-Tree索引

大多數(shù)mysql引擎都支持這種索引;

        1.B-Tree通常意味著所有的值都是按順序存儲(chǔ)的,

        2.并且每一個(gè)葉子頁(yè)到根的距離相同;

存儲(chǔ)引擎不需要進(jìn)行全表掃描來(lái)獲取需要的數(shù)據(jù),取而代之是從索引的根節(jié)點(diǎn)開(kāi)始進(jìn)行搜索;

適用于:

A. 全鍵值查找(全值匹配)

B. 鍵值范圍(若是有多列的合并索引,需要精確匹配某一列并范圍匹配另一列)

C. 鍵前綴查找

D. 按順序查找(order by)

限制:

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

B. 不能跳過(guò)索引中的列

C. 如果查詢中有某個(gè)列的范圍查詢,其右邊的所有列都無(wú)法使用索引優(yōu)化查詢

2. 哈希索引

在mysql中,只有memory引擎顯式支持哈希索引;基于哈希表實(shí)現(xiàn),只有精確匹配索引所有列的查詢才有效;對(duì)于每一行數(shù)據(jù),存儲(chǔ)引擎會(huì)對(duì)所有的索引列計(jì)算一個(gè)哈希碼,不同的鍵值行計(jì)算出的哈希碼不一樣,哈希索引將所有的哈希碼存儲(chǔ)在索引中,同時(shí)在哈希表中保存指向每個(gè)數(shù)據(jù)行的指針;(hash索引結(jié)構(gòu):hash值:指針)

優(yōu)勢(shì):

查找速度非???/p>

限制:

A. 無(wú)法用于排序

B. 不支持部分索引列匹配查找

C. 只支持等值比較查詢

存儲(chǔ)引擎不支持哈希索引時(shí),可以建立自定義哈希:

如:建表pseudohash:id,url,url_crc;

建立觸發(fā)器:insert數(shù)據(jù)時(shí) set new.url_crc = crc32(new.url);

Update數(shù)據(jù)時(shí) set new.url_crc = crc32(new.url);

查找:select url , url_crc from pseudohash where url_crc = crc32(“www.baidu.com”) and url = “www.baidu.com”;

在where語(yǔ)句中帶人hash值和對(duì)應(yīng)列值。


索引功能類型:

1.普通索引(INDEX )

    CREATE INDEX index_name ON table_name (column_list);

2.唯一索引(UNIQUE INDEX)

    mysql數(shù)據(jù)庫(kù)索引列的值必須唯一,但允許有空置。如果是組合索引,列值的組合必須唯一。

    CREATE UNIQUE INDEX index_name ON table_name (column_list)

3.主鍵索引(PRIMARY KEY)

    是一種特殊的唯一索引,不允許有空置,一般在建表時(shí)創(chuàng)建

    CREATE TABLE table_name ( 

     ID INT NOT NULL, 

     [column] VARCHAR(16) NOT NULL, 

    PRIMARY KEY(ID)   

     );  

4.全文索引:(FULLTEXT)只可以用在MyISAM引擎

    對(duì)大數(shù)據(jù)文本進(jìn)行索引,在建立的索引中對(duì)要查找的單詞進(jìn)行搜索,定位哪些文本數(shù)據(jù)包括要搜索的單詞。

    1,建立索引   2,在索引中搜索定位

    //針對(duì)content做了全文索引:

    CREATE TABLE `table` (

    `id` int(11) NOT NULL AUTO_INCREMENT ,

    `title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,

    `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,

    PRIMARY KEY (`id`),

    FULLTEXT (content) );

    查找時(shí):

    SELECT * FROM article WHERE MATCH( content) AGAINST('想查詢的字符串')



索引的優(yōu)點(diǎn):

1. 可以讓服務(wù)器快速定位到表的指定位置,大大減少了服務(wù)器需要掃描的數(shù)據(jù)量

2. 最常見(jiàn)的b-tree索引按照順序存儲(chǔ)數(shù)據(jù),可以用來(lái)做order by和group by,幫助服務(wù)器避免排序和臨時(shí)表,將隨機(jī)I/O變?yōu)轫樞騃/O

3. 因?yàn)樗饕写鎯?chǔ)了實(shí)際的列值,某些查詢只需要使用索引就能完成全部查詢


索引優(yōu)化

      1. 前綴索引

         問(wèn)題:有時(shí)候索引需要存儲(chǔ)很長(zhǎng)的字符串,會(huì)讓索引變得大且慢

         解決:1. hash索引 2. 前綴索引

         索引的選擇性:不重復(fù)的索引值 / 數(shù)據(jù)表的記錄總數(shù),數(shù)值越高性能越好;

                            唯一索引的選擇性是1,性能是最好的

          計(jì)算適合的前綴長(zhǎng)度,使前綴的選擇性接近于完整列的選擇性。Mysql無(wú)法使用前綴索引做order by和group by,也無(wú)法使用前綴索引做覆蓋掃描;

       2. 選擇合適的索引列順序

          將選擇性最高的列放在索引最前列


標(biāo)題名稱:MYSQL(一)數(shù)據(jù)庫(kù)索引類型,索引優(yōu)點(diǎn)
網(wǎng)址分享:http://weahome.cn/article/jhsgdd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部