淺析MySQL各種索引

來源:互聯網
上載者:User

MySQL各種索引(因為是淺析大多都不刻意區分搜尋引擎)

INDEX(普通索引):最基本的索引,沒有任何限制

        ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

UNIQUE(唯一索引):與"普通索引"類似,不同的就是:索引列的值必須唯一,但允許有空值。

        ALTER TABLE `table_name` ADD UNIQUE (`column`)

        註:建立唯一索引的目的不是為了提高訪問速度,而只是為了避免資料出現重複。唯一索引可以有多個但索引列的值必須唯一,索引列的值允許有空值。如果能確定某個資料列將只包含彼此各不相同的值,在為這個資料列建立索引的時候就應該使用關鍵字UNIQUE,把它定義為一個唯一索引。

PRIMARY KEY(主鍵索引):它 是一種特殊的唯一索引,不允許有空值。 

        ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

FULLTEXT(全文索引):僅可用於 MyISAM 表,針對較大的資料,產生全文索引很耗時好空間。

        ALTER TABLE `table_name` ADD FULLTEXT ( `column` )

COMBINED(複合式索引):為了更多的提高mysql效率可建立複合式索引,遵循”最左首碼“原則。

        ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

使用索引應該知道的事:

1、雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對錶進行INSERT、UPDATE和DELETE。因為更新表時,MySQL不僅要儲存資料,還要儲存一下索引檔案。

2、建立索引會佔用磁碟空間的索引檔案。一般情況這個問題不太嚴重,但如果你在一個大表上建立了多種複合式索引,索引檔案的會膨脹很快。

3、索引只是提高效率的一個因素,如果你的MySQL有大資料量的表,就需要花時間研究建立最優秀的索引,或最佳化查詢語句。

建索引之後你要保護索引良好的執行:

請參照保護索引要注意的問題這篇文字。


相關文章

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.