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;

  • 相关阅读:
    Double-Array Trie 原理解析
    LeetCode 之 Longest Valid Parentheses(栈)
    [Unity3D]Unity3D游戏开发之从Unity3D到Eclipse
    走进Struts2(一) — Struts2的执行流程及其工作原理
    网页页面NULL值对浏览器兼容性的影响
    基于cocos2d-x-3.2学习Box2D(一)
    记忆方法与高速阅读——什么是高速阅读
    ArcGIS 教程:Workflow Manager 高速浏览
    【cocos2d-x 3.7 飞机大战】 决战南海I (三) 敌机实现
    C语言事实上不简单:数组与指针
  • 原文地址:https://www.cnblogs.com/lalala823581291/p/10676276.html
Copyright © 2011-2022 走看看