Mysql学习笔记整理之数据库优化
数据库性能瓶颈的原因
- 数据库连接数
- 数据量大
- 硬件资源限制
数据性能优化方案
- sql优化 2.缓存 3.建好索引 4.读写分离 5. 分库分表
慢日志查 show cache 索引 mysql主从 mycat
Mysql查询优化---执行步骤
- mysql客户端/服务端通信
- 查询缓存
- 查询优化处理
- 查询执行引擎
- 返回客户端
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-100W分,取莫单双数分)
所以引出MYCAT
Mycat开元分布式,数据处理与整合的中间服务
相当于服务数据库,解决分布式存储问题
最新文章
- java--字符串
- web项目中,视图层中关于相对路径和绝对路径
- linux查看系统信息命令
- lua ipairs
- C# 将窗口移动到指定位置
- ASP.NET Web API的消息处理管道: HttpRoutingDispatcher
- 数据库CAST()函数和CONVERT()函数比较
- memcache 启动 储存原理 集群
- Git知识总览(六) Git分支中的远程操作实践
- Gradle 1.12用户指南翻译——第三十六章. Sonar Runner 插件
- 不能用notepad++编辑器编写python
- VDMA时序分析
- What Are You Talking About HDU1075
- 家庭版Windows设置远程连接
- Linux服务器安全之 fail2ban的安装与配置
- Linux之安装本地Python和pip
- Android 8 wifi blakclist
- 【笔记】DataTable或IList使用GroupBy方法的lamda表达式
- 610D - Vika and Segments(线段树+扫描线+离散化)
- [NN] 对于BackPropagation(BP, 误差反向传播)的一些理解
热门文章
- day0203
- php中++ --运算
- session一致性的解决方案
- Mysql主从同步配置方案(Centos7)
- codeforce303C-Minimum Modular-剪枝,暴力
- sublime,webstrom,vscode的使用感受,以及对于vue和webpack的支持,还有一些快捷键使用心得
- 【Offer】[65] 【不用加减乘除做加法】
- 章节十六、7-DataProviders
- NGINX的启停命令、以及动态加载配置文件的命令
- SpringBoot系列__02HelloWorld探究