• mysql优化


    一,慢查询

      1.1什么是慢查询:一个日志,记录着一个sql语句。如何定义慢查询,有一个阈值(long_query_time).

      

      1.2如何在日志中定位慢查询语句:使用mysql自带工具

      

      执行命令找出最慢的几条sql

      

      下面为慢查询的sql语句

      

     二,分析sql语句

      2.1分析每个表的数据量

      

      2.2常见优化方式

        

      2.3用关联查询代替子查询:性能提升了一倍多

      

      2.4反范式优化

        数据库范式:字段具有原子性、每行数据具有唯一性、字段不冗余

      

      2.5范式化设计的目的:减少冗余,对新增、删除、修改有利,对查询有害。

      2.4索引分类

      

      2.6主键索引是默认加的,主键索引和唯一索引的区别是唯一索引可以为空。

      2.7.聚集索引:就是保存了索引和数据,索引需要在条件中才能被启用。

      2.8查看执行计划:key不为空说明使用了索引

      

      2.9使用key_len算法来评价索引是否被充分使用到

      

      2.10虽然创建了联合索引,但是其他的三个索引都没有用到。这时可以范围条件放到最后,也就是把范围条件索引放到最后。

    三,索引使用策略

      3.1尽量全值匹配

      3.2最佳左前缀法则

        组合索引时是按照最左前缀的方式查询的,也就是只有带上组合索引中最左边的索引列才会走索引。单独索引不会有这种问题,

      3.3不在索引列上操作

      3.4范围条件放最后

      3.5覆盖索引尽量用

        查询的字段都是索引列    

      3.6不等于要慎用

      3.7NOT/NULL

      3.8当心like

      3.9字符类型加引号

      3.10 OR用UNION代替

      

      

        

  • 相关阅读:
    Android Button上的文字自动变成大写,如何解决呢?
    如何在IamgeButton上面添加文字
    C语言之实现函数返回一个数组,以及选择排序,还有折半查找。这是同学的一个作业。。。
    解决android:background背景图片被拉伸问题
    service&thread
    MS SQLServer Update语法和实例
    ztree2.6给菜单增加title提示信息[转]
    UltraEdit-14.10.0.1024版本语法着色配置
    linux下c++动态库的生成及使用
    c++动态库与静态库
  • 原文地址:https://www.cnblogs.com/shengkai126126/p/12889460.html
Copyright © 2020-2023  润新知