zoukankan      html  css  js  c++  java
  • MySql优化

    1. MySql分层

    其中的服务层提供了SQL的优化器,会对我们的查询语句进行优化,会干扰我们的优化

    2.查询时sql语句执行顺序

    编写过程:select distinct ... from ... join on ... where ... group by ... having ... order by ... limit...

    执行过程:from ... on ... join  ... where ... group by ... having ... select distinct ... order by ... limit...

    3. SQL 优化 —— 索引

    主要是优化索引,索引是数据结构,主要是B树

    索引的分类主要如下:

    单值索引:单列,一个表可以有多个单值索引;     create index  indexName  on tableName(colName);

    唯一索引:值不能重复,一般用于id           create unique indexName on tableName(colName);

    主键索引:值不能重复,不能为null,一般主键默认就是主键索引;

    复合索引:多个列构成的索引             create index indexName on tableName(colName1, colName2, ...);

    索引的删除: drop index indexName on tableName;

    索引的查询:show index from tableName;

    4. 分析SQL执行计划

    因服务层提供的SQL的优化器,会对我们的查询语句进行优化,会干扰我们的优化

    可以用explain 来模拟SQL优化器来执行我们的SQL 语句

    查询方法:explain + SQL 语句

    参数讲解可查看:https://blog.csdn.net/zh15732621679/article/details/80394790

    5. SQL优化小结

    索引的顺序和使用的顺序一致性;

    含有in的查询条件放最后(in 可能会使索引失效);

    逐步优化;

    小表驱动大表(联表查询时将条件中 数据量小的放左边)

    左外联接给左表加索引,右外联接给右表加索引

    数据区

    分度大的加索引

    6. 索引失效的情况

    复合索引不要跨列或者无序使用;

    范围查询不要用in;

    不要在查询语句的索引上进行计算、函数、类型转换、is not null、is null、!=、<、>等操作;

    like 尽量以常量开头,不要以%开头;

    不要使用显式、隐式的类型转换;

    尽量不要使用or;

  • 相关阅读:
    雷电模拟器adb devices返回127.0.0.1:5555 offline分析和解决办法【转】
    Windows安装scoop的方法
    执行appium-doctor时提示不是内部或外部的命令的处理方法
    如何在博客园随笔里将代码显示为代码
    自动播放视频并录屏保存的python代码
    快速解决tomcat指定的服务未安装问题
    Jforum_看帖_回帖_发帖的测试用例
    使用jmeter模拟post请求在jforum论坛回帖报错
    登录probe失败的问题处理
    hadoop学习爬坑记录
  • 原文地址:https://www.cnblogs.com/lalala823581291/p/10676276.html
Copyright © 2011-2022 走看看