mysql--------四種索引類型


一、索引的類型

mysql索引的四種類型:主鍵索引唯一索引普通索引全文索引。通過給字段添加索引可以提高數據的讀取速度,提高項目的並發能力和抗壓能力。索引優化時mysql中的一種優化方式。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容

 

    主鍵索引:
        主鍵是一種唯一性索引,但它必須指定為PRIMARY KEY,每個表只能有一個主鍵。

alert table tablename add primary key (`字段名`)

 

  唯一索引:
        索引列的所有值都只能出現一次,即必須唯一,值可以為

alter table table_name add primary key (`字段名`);

 

  普通索引 :
        基本的索引類型,值可以為空,沒有唯一性的限制。

 

alter table table_name add index (`字段名`);

 

   全文索引:
        全文索引的索引類型為FULLTEXT。全文索引可以在varchar、char、text類型的列上創建。可以通過ALTER TABLE或CREATE INDEX命令創建。對於大規模的數據集,通過ALTER TABLE(或者CREATE INDEX)命令創建全文索引要比把記錄插入帶有全文索引的空表更快。MyISAM支持全文索引,InnoDB在mysql5.6之后支持了全文索引。        全文索引不支持中文需要借sphinx(coreseek)迅搜<、code>技術處理中文。

alter table 表名 add FULLTEXT(`字段名`);

 

二、查看表的所有索引和刪除

 

    #查看:
    show indexes from `表名`;
    #或
    show keys from `表名`;
     
    #刪除
    alter table `表名` drop index 索引名;

 

 

三、索引的機制

1.為什么我們添加完索引查詢速度為變快
    傳統的查詢方法,是按照表的順序遍歷的,不論查詢幾條數據,mysql需要將表的數據從頭到尾遍歷一遍
    在我們添加完索引之后,mysql一般通過BTREE算法生成一個索引文件,在查詢數據庫時,找到索引文件進行遍歷(折半查找大幅查詢效率),找到相應的鍵從而獲取數據

2.索引的代價
    2.1創建索引是為產生索引文件的,占用磁盤空間
    2.2索引文件是一個二叉樹類型的文件,可想而知我們的dml操作同樣也會對索引文件進行修改,所以性能會下降

3.在哪些column上使用索引?
    3.1較頻繁的作為查詢條件字段應該創建索引
    3.2唯一性太差的字段不適合創建索引,盡管頻繁作為查詢條件,例如gender性別字段
    3.3更新非常頻繁的字段不適合作為索引
    3.4不會出現在where子句中的字段不該創建索引

總結: 滿足以下條件的字段,才應該創建索引.
a: 肯定在where條經常使用 b: 該字段的內容不是唯一的幾個值 c: 字段內容不是頻繁變化

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM