mysql优化

  • mysql架构优化,sql语句优化,mysql索引优化
    mysql架构执行流程是
    客户端-连接器(用户权限)-缓存(可以直接返回数据)
    -分析器(语法分析)-优化器(生成执行计划索引选择)-执行器(操作索引返回结果集)

mysql优化_第1张图片
连接器 :主要是负责用户登录数据库,进行用户身份认证,权限操作,默认连接数据库最大8小时,超过这个时间需要重新连接,
缓冲区 :执行查询sql语句时,会先进行缓存中查询,如果sql之前执行过,会以key-value形式缓冲到内存中,
分析器:主要是分析sql语句是用来干嘛的,先分析词法就是判断关键字是用来对sql判断是什么类型,语法分析是sql是否正确,
优化器:优化器是如何执行sql是最优的,选择索引,多表查询关联顺序,
执行器:当选择好执行方案后,数据库开始执行sql语句,调用引擎,返回执行结果,

  • 架构优化也就是将连接数据库的线程,做优化,并发线程很浪费线程占用cpu,做好连接池准备
  • sql优化是提高查询效率,减少占用资源, sql优化就是指的是语句优化和索引执行
    索引就是避免全表扫描,走索引查询,like关键字查询词第一个字符串不要通配符,这样会不走索引,
    如果对where后面的列进行了计算,则不会走索引,对列进行了函数不会走索引,使用or要求是双方是索引,不然不走索引,使用union
    大查询变成小查询,
    在使用分页是可以进行排序
    索引的优点是:能够提高查询效率,不使用索引就是从头到尾查询一遍,使用索引就是走小路,可以加快表与表连接的速度,
    做条件判断的列做索引,
    索引有普通索引 是查询块,唯一索引是唯一可以是null 主键索引是不能为null 不能重复,全文索引是char varchar text 字段建立索引,
    不要在列上做判断,把计算放到业务层中,不要放到数据库中,
    一张表的索引不要超过6个
    使用between and in 才会走索引,

你可能感兴趣的:(笔记)