码迷,mamicode.com
首页 > 数据库 > 详细

MYSQL 索引的操作

时间:2015-09-05 01:22:19      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:mysql 索引

一: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;

    

    在已经存在的表上创建普通索引

    CREATE INDEX 索引名

    // create unique index 索引名

        ON 表名 (属性名 【(长度)】 【ASC|DESC】)

    ///...

    create index index_deptno

    // create unique index index_deptno

        on t_dept (deptno);

    ///...

    通过SQL语句ALTER TABLE创建普通索引

    ALTER TABLE table_name

        ADD INDEX|KEY 索引名(属性名 【(长度)】 【(ASC|DESC)】;

        // ADD UNIQUE INDEX|KEY 索引名(属性名 【(长度)】 【(ASC|DESC)】

        ///...

    alter table t_dept

        add index index_deptno(deptno);

        // add unique index index_deptno(deptno);

        ///...


    创建和查看多列索引

    #1:

    create table t_dept(

        deptno int,

        dname varchar(20),

        loc varchar(40),

        key index_dname_loc(dname,loc)

    );


    #2:

    create index index_dname_loc

        on t_dept (dname,loc);

    

    #3:

    alter table t_dept

        add index index_dname_loc(dname,loc);


    删除索引

    drop index index_name

        on table_name

        


    

        






























    

MYSQL 索引的操作

标签:mysql 索引

原文地址:http://zhouxinzhe.blog.51cto.com/9031522/1691447

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!