一:WHY

    由于数据存储在数据库表中,所以索引是创建在数据库表对象上的,由表中的一个字段或多个字段生成的键组成,这些键存储在数据结构(B-树或哈希表)中,通过MYSQL可以快速有效地查找与键值相关联的字段。根据索引的存储类型,可以将索引分为

    B型树索引(BTREE)

    哈希索引(HASH)

    注意:InnoDB 和 MyISAM 存储引擎支持BTREE类型索引,MEMORY存储引擎支持HASH类型索引,默认为前者索引。


二:WHAT

    MYSQL支持6种索引:普通索引 唯一索引 全文索引 单列索引 多列索引 空间索引

    

三:HOW

    创建和查看索引


    创建表时创建索引

    create table table_name(

        属性名 数据类型,

        ...

        属性名 数据类型,

        index|key 【索引名】(属性名 【(长度)】 【ASC|DESC】) #普通索引

        // unique index|key 【索引名】(属性名1 【(长度)】 【(ASC|DESC)】 #唯一索引

        /// fulltext index|key 【索引名】(属性名1 【(长度)】 【(ASC|DESC)】 #全文索引


    );

    

    create table t_dept(

        deptno int,

        dname varchar(20),

        ...

        index index_deptno(deptno)

        // unique index index_deptno(deptno)

        ///fulltext index index_loc(loc)

    );

    

    show create table t_dept \G;

    explain 

        select * from t_dept where deptno=1\G;