zoukankan      html  css  js  c++  java
  • Mysql优化反刍

    Sql优化

    【1】核心作用:提高查询效率

    【2】四大分类:Primary,index,uniquer,fulltext

           -主键和外键自带索引,且往往只能有一个

           -唯一索引可有多个

           -常规索引:快速定位特定数据!——不宜添加太多的常规索引,会影响数据的写效率。【一般在字段量的1/4】

           -全文索引:针对例如:like %xxx%  [vachr,char,等大数据字符串] \类似分词【搜索引擎中】   只有MyISAM能用, 【5.6之前】;5.6后支持InnerDB.——默认对英文生效,中文通常是无效的。【+支持安装插件】

    【3】索引准则

           -Mysql等数据库的索引本质也是一张表

           -MyISAM的索引文件仅仅保存数据记录的地址——非聚集索引,索引与数据是分开的,每一条数据对应一个索引   【主索引唯一,辅助索引运行不唯一】

           -InnerDB:聚集索引,数据与索引为一体

           -InnoDB采用自增字段做表的主键——保证有序——即:主键索引查询高效,辅助索引查询2次,只先通过辅助找到主键,然后通过主键定位

    【4】B-tree:检索

           -

    【5】执行计划

           -研究查询效率。依靠数据本身的sql优化器,建立依次查询的计划或步骤。——该过程不可控,可以通过执行计划观察,根据执行计划调整查询的方式和方法,使得查询效率尽可能最优

           -查询效率影响因素:数据量,数据的倾斜。

           -Explaiin + sql语句 :通过输出结果来优化。

               -id:相同,则自上而下;不同,则由大到小

               -select_type: 简单查询,不建立执行计划;primary,subquery,union,同理查询顺序同id

             -type访问类型,最重要,关键,有价值的结果,优化查询结果的指标  +【rows , filtered】次之

                      -直接命中主键,效率最高【InnoDB中,推荐+主键】

                -sql优化器——对数据库管理系统的国产化,底层的引擎!--只能逆向工程,反推大概是什么样子!&&&正面直接建立模型的基础研究的投入!

                      -索引最好是等值判断;对于 经常做非等值判断的,不要去建索引!

                      -index:全表扫描-主键;All:非主键的全表扫描

                      -Type:参考指标;但是:type不是唯一决定因素!+【rows+filrtered】+【执行时间】的综合效率

                      -rows越小越好,filtered越大越好

           -

           -补充:union 去重 ;union all 查询所有数据 ??——具体应用实力

    数据库优化策略:背诵记忆

    【1】索引、数q据本身、日常维护、使用方式:主键索引,未必慢于其他辅助索引

    【2】影响效率的因素:

           -全表扫描:索引失效是会引起全表扫描的一个关键因素。【尽可能让索引生效!】

           -

           -

    【3】索引失效情况

           -

           -索引从左往右;非索引从右往左

           -

    【4】where语句优化

           -

    表的设计

    【1】大表:尽可能少关联

    【2】小表:用户登录表,用户明细表。

    【3】尽可能避免子查询和临时试图;建议使用:缓存!尤其是对数据结构有很大影响。

    【4】外键建索引,但是不要加约束

    【5】

    创建和使用索引


    Mysql事务管理和锁

  • 相关阅读:
    Springboot 中AOP的使用
    ElasticSearch 聚合查询百分比
    ElasticSearch 入门
    elasticsearch 关联查询
    spring data elasticsearch多索引查询
    elasticsearch 拼音+ik分词,spring data elasticsearch 拼音分词
    es同步mysql同步-logstash
    jpa Specification复杂查询
    java Spring boot使用spring反射
    BeautifulSoup学习记录
  • 原文地址:https://www.cnblogs.com/macro-renzhansheng/p/13113943.html
Copyright © 2011-2022 走看看