• Mysql索引操作


    1、索引语法

    2、慢查询日志

    慢查询日志记录了所有执行时间超过指定参数( long_query_time ,单位:秒,默认 10 秒)的所有
    SQL 语句的日志。
    MySQL 的慢查询日志默认没有开启,我们可以查看一下系统变量 slow_query_log

    开启慢查询日志,需要在 MySQL 的配置文件( /etc/my.cnf )中配置如下信息:
    检查慢查询日志 :
    最终我们发现,在慢查询日志中,只会记录执行时间超多我们预设时间( 2s )的 SQL ,执行较快的 SQL是不会记录的。

    3、profile 和explain

    profile 能够在做SQL 优化时帮助我们了解时间都耗费到哪里去了
    通过 have_profiling参数,能够看到当前 MySQL 是否支持 profile 操作:
    1、SELECT @@have_profiling ; 
    2、SET profiling = 1;  开启 profiling
    3、执行sql语句
    4、
    EXPLAIN 或者 DESC 命令获取 MySQL 如何执行 SELECT 语句的信息,包括在 SELECT 语句执行
    过程中表如何连接和连接的顺序。

    4、索引设计原则

    1). 针对于数据量较大,且查询比较频繁的表建立索引。
    2). 针对于常作为查询条件( where )、排序( order by )、分组( group by )操作的字段建立索
    引。
    3). 尽量选择区分度高的列作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高。
    4). 如果是字符串类型的字段,字段的长度较长,可以针对于字段的特点,建立前缀索引。
    5). 尽量使用联合索引,减少单列索引,查询时,联合索引很多时候可以覆盖索引,节省存储空间,避免回表,提高查询效率。
    6). 要控制索引的数量,索引并不是多多益善,索引越多,维护索引结构的代价也就越大,会影响增删改的效率。
    7). 如果索引列不能存储 NULL 值,请在创建表时使用 NOT NULL 约束它。当优化器知道每列是否包含 NULL 值时,它可以更好地确定哪个索引最有效地用于查询。

  • 相关阅读:
    【uniapp】跨域代理及一些常见问题:
    Windows 11 简体中文版、英文版 (x64、ARM64) 下载 (updated Jun 2022)
    大数据Flink(七十一):SQL的时间属性
    有向图的邻接表和邻接矩阵
    CSS零碎知识点记录
    PyTorch基础(18)-- torch.stack()方法
    【Kubernetes 系列】一文带你吃透 K8S 应用pod结点
    详解如何使用LAMP架构搭建论坛
    简单选择排序(数据结构)
    IVX低代码平台——微信小程序获取用户信息
  • 原文地址:https://blog.csdn.net/lingxiyizhi_ljx/article/details/136239298