• 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: 字段内容不是频繁变化

  • 相关阅读:
    使用South时候由于两个相同id的文件引起的问题
    Python os模块
    Ubuntu的关机重启命令知识
    [BUGFIX]__import_pywin32_system_module__
    Django生产环境的部署-Apache-mod_wsgi
    我是如何将linux用在开发环境中的
    php抽奖概率算法
    PHP接收IOS post过来的json数据无法解析的问题
    python apache下出现The _imaging C module is not installed
    php 打印
  • 原文地址:https://www.cnblogs.com/zhangqie/p/8416164.html
Copyright © 2020-2023  润新知