• 面试系列MySql:索引优化


    优点:

    1、提高数据检索的效率,降低数据库的IO成本。
    2、通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。

    缺点:

    1、虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段。实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引列也是要占用空间。

    使用条件:
    哪些情况需要创建索引?

    1、主键自动建立唯一索引
    2、频繁作为查询条件的字段应该创建索引
    3、查询中与其它表关联的字段,外键关系建立索引
    4、查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度
    5、查询中统计或者分组字段

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

    1、表记录太少。
    2、经常增删改的表或者字段。Why:提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
    3、Where条件里用不到的字段不创建索引。

    索引失效的一些情况

    1、查询条件中有or
    2、like查询是以'%'开头
    3、对查询的列上有运算或者函数的
    4、如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引
    5、左连接查询或者右连接查询查询关联的字段编码格式不一样
    6、如果mysql估计使用全表扫描要比使用索引快,则不使用索引
    7、如果查询中没有用到联合索引的第一个字段,则不会走索引 

  • 相关阅读:
    CF940F Machine Learning (点分治)
    AI生成PPT:如何轻松制作专业的答辩PPT?
    项目十结构体与共用体的基本应用
    通过Java实现双色球原理
    @Override 的作用
    函数题21 习题8-2 在数组中查找指定元素 浙大版《C语言程序设计(第4版)》题目集
    引入Wukong让你的系统瞬间具备IOC能力
    docker安装SkyWalking
    Jx_Python基础库入门_2: 基本数据类型
    介绍 TensorFlow 的基本概念和使用场景。
  • 原文地址:https://blog.csdn.net/CancerKing/article/details/128077793