• mysql数据库索引(四)


    1、索引的创建

    create index user_index on user(uname);

    2、查看表中的索引

    show index from table_name;

    3、删除索引

    drop index user_index on table_name;

    4、使用索引的优点

    1、可以通过建立唯一索引或者主键索引,保证数据库表中每一行数据的唯一性;
    2、建立索引可以大大提高检索的数据,以及减少表的检索行数;
    3、在表连接的连接条件 可以加速表与表直接的相连;
    4、在分组和排序字句进行数据检索,可以减少查询时间中分组和 排序时所消耗的时间(数据库的记录会重新排序);
    5、建立索引,在查询中使用索引 可以提高性能。

    5、使用索引的缺点

    1、在创建索引和维护索引 会耗费时间,随着数据量的增加而增加;
    2、索引文件会占用物理空间,除了数据表需要占用物理空间之外,每一个索引还会占用一定的物理空间;
    3、当对表的数据进行 INSERT,UPDATE,DELETE 的时候,索引也要动态的维护,这样就会降低数据的维护速度,(建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快)。

    6、注意索引的使用

      要建立索引,要按照实际数据情况来看,哪些需要建立索引,哪些是多余的;

    1、在经常需要搜索的列上,可以加快索引的速度;
    2、主键列上可以确保列的唯一性;
    3、在表与表的而连接条件上加上索引,可以加快连接查询的速度;
    4、在经常需要排序(order by),分组(group by)和的distinct 列上加索引, 可以加快排序查询的时间,  (单独order by 用不了索引,索引考虑加where 或加limit);
    5、索引不会包含NULL列,如果列中包含NULL值都将不会被包含在索引中,复合索引中如果有一列含有NULL值那么这个组合索引都将失效,一般需要给默认值0或者 ' '字符串;
    6、使用短索引,如果你的一个字段是Char(32)或者int(32),在创建索引的时候指定前缀长度 比如前10个字符 (前提是多数值是唯一的..)那么短索引可以提高查询速度,并且可以减少磁盘的空间,也可以减少I/0操作;
    7、不要在列上进行运算,这样会使得mysql索引失效,也会进行全表扫描。

    7、哪些情况下需要创建索引?哪些情况下不要创建索引?

    1、主键自动建立唯一索引;
    2、频繁作为查询条件的字段应该创建索引;
    3、查询中与其他表有关联的字段,例如外键关系;
    4、频繁更新的字段不适合创建索引,因为每次更新不单单是更新记录,还会更新索引,保存索引文件;
    5、where条件里用不到的字段,不创建索引;
    6、高并发的情况下一般选择复合索引;
    7、查询中排序的字段创建索引将大大提高排序的速度(索引就是排序加快速查找);
    8、查询中统计或者分组的字段;
    9、表记录太少,不需要创建索引;
    10、经常增删改的表;
    11、数据重复且分布平均的字段,因此为经常查询的和经常排序的字段建立索引。注意某些数据包含大量重复数据,因此他建立索引就没有太大的效果,例如性别字段,只有男女,不适合建立索引。
  • 相关阅读:
    Milking Time---poj3616(简单dp)
    elasticsearch-入门(一)
    Spring Cloud Sleuth(十四)
    Spring Cloud Stream(十三)
    Spring Cloud-Bus(十二)
    Spring Cloud-config(十一)
    mac Gitblit安装
    git学习笔记
    java陷阱之spring事物管理导致锁无效
    Spring Cloud-Zuul(十)
  • 原文地址:https://www.cnblogs.com/newbest/p/9736916.html
Copyright © 2020-2023  润新知