zoukankan      html  css  js  c++  java
  • Mysql学习笔记整理之数据库优化

    数据库性能瓶颈的原因

    1. 数据库连接数
    2. 数据量大
    3. 硬件资源限制

    数据性能优化方案

    1. sql优化    2.缓存    3.建好索引   4.读写分离    5. 分库分表

      慢日志查   show cache    索引   mysql主从     mycat

    Mysql查询优化---执行步骤

    1. mysql客户端/服务端通信
    2. 查询缓存
    3. 查询优化处理
    4. 查询执行引擎
    5. 返回客户端

    Mysql是半双工通信:只能一方传一方,另一方等待信息

     

    最简单的优化   如 在  tablea inner join tableb on tablea.id = tableb.aid 后面在加一个 and xxx=xxx 过滤数据量。

    sql优化,首先要知道为什么优化,因为慢,开启慢日志记录慢查询,拿到SQL分析原因,然后就是索引啊,索引失效啊,过多无用表联查,数据库解析方式,分页返回数据之类的

    • 查看是否开启: show variables like '%slow_query_log%';
    • 开启慢查询日志:set global slow_query_log=1; (重启会失效)

       查询缓存命中相关遍历:show global status like ‘Qcache%’

    Sql执行步骤----------------------->

        from-----------------> 加载文件

        on--------join------->关联表关系

        where----------------> 摘取符合条件的数据行

        group by ------------> 根据字段的数据种类进行分组

        having---------------> 将分组之后,不符合条件的临时表,进行删除

        select---------------> 默认情况,对某个列所有的数据进行读取        

        distinct-------------> 分组查询, 某个列的第一行数据

       order by--------------> 对select生成的临时表,重新排列

       limit----------------->对最终的结果,进行截取.

     

    分库分表

    1. 垂直拆分 (拆分子系统、模块分解)
    2. 水平拆分(按范围,大小查分)(1-100W分,取莫单双数分)

     

    所以引出MYCAT

    Mycat开元分布式,数据处理与整合的中间服务

    相当于服务数据库,解决分布式存储问题

  • 相关阅读:
    Apple的App Analytics统计平台你必须知道的Q&A整理与翻译
    WWDC2014总结---For产品经理们
    AppStore占坑注意事项
    Mac上的终端(Terminal)启动缓慢
    iOS推送失败的可能问题汇总
    Mac OS X 10.9 Mavericks安装后,Xcode调试时模拟器黑屏的处理方法
    MySql批处理的小窍门:排行榜类数据生成
    升级OSX 10.9 Mavericks后,会导致Finder始终无响应的一个问题
    拉面馆中的移动互联网——无线KPI探讨
    Weak is not weak,Strong is not strong
  • 原文地址:https://www.cnblogs.com/weijianxing/p/11586767.html
Copyright © 2011-2022 走看看