Mysql進階之索引

來源:互聯網
上載者:User

標籤:style   blog   http   color   ar   使用   sp   資料   on   

原文: Mysql進階之索引

索引:是針對資料所建立的目錄.

作用: 可以加快查詢速度

負面影響: 降低了增刪改的速度.

索引的建立原則:

1:不要過度索引

2:在where條件最頻繁的列上加.在重複度高的列上不加,比如性別男女;

3:盡量索引散列值,過於集中的值加索引意義不大.

 

索引的類型

普通索引: index 僅僅是加快查詢速度.

唯一索引: unique index 行上的值不能重複

主鍵索引: primary key 不能重複.

主鍵必唯一,但是唯一索引不一定是主鍵.

一張表上,只能有一個主鍵, 但是可以用一個或多個唯一索引.

全文索引 : fulltext index 在mysql的預設情況下, 對於中文意義不大.一般使用第三方解決方案

因為英文有空格,標點符號來拆成單詞,進而對單詞進行索引.

而對於中文,沒有空格來隔開單詞,mysql無法識別每個中文詞.

(上述3種索引,都是針對列的值發揮作用,但全文索引,可以針對值中的某個單詞,比如一篇文章,)全文索引不針對非常頻繁的詞做索引,如this, is, you, my等等.

索引長度:指定一列部分內容作為索引

多列索引:兩列或多列值看做整體,當做索引。在英文網站時,first name,last name當做一個整體,此時,where條件中只有first name可以發揮作用,last name 沒有發揮作用,這就是作為的左首碼規則。

冗餘索引:某列有多個索引,例如在上面last name上再次建立索引。



建立索引

可以在建表時,直接聲明索引,即在列聲明完畢後,聲明索引.

例如下:

 create table test5 (

 id int,

 username varchar(20),

 school varchar(20),

 intro text,

 primary key (id),

 unique (username),

 index (school),

 fulltext (intro)

 ) engine myisam charset utf8;

 

查看一張表上所有索引

Show index from 表名

 

建立索引

Alter table 表名 add index /unique/fulltext [索引名] (列名)

Alter table 表名  add primary key (列名)   // 不要加索引名,因為主鍵只有一個

 

刪除添加索引

刪除非主鍵索引:Alter table 表名 drop/add index 索引名;

刪除主鍵: alter table 表名 drop/add  primary key


Mysql進階之索引

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.