数据库性能瓶颈的原因

  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开元分布式,数据处理与整合的中间服务

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

版权声明:本文为weijianxing原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/weijianxing/p/11586767.html