设为首页 收藏本站
查看: 690|回复: 0

[经验分享] MYSQL 索引的操作

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-6 08:58:21 | 显示全部楼层 |阅读模式
一: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




        


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-109933-1-1.html 上篇帖子: MySQL常用操作 下篇帖子: MySQL密码设置和重置,以及远程登入数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表