MySql优化
2020-02-09 22:05:22 0 举报
AI智能生成
登录查看完整内容
mysql优化
作者其他创作
大纲/内容
MySql优化思路
连接 — 配置优化
服务端增加可用连接数
客户端使用连接池实现连接的重用
架构优化
缓存
在高并发下使用缓存可减少数据库的压力
主从复制
异步与全同步
半同步复制
多库并行复制
异步复制之 GTID 复制
分库分表
垂直分库是把一个数据库按照业务拆分成不同的数据库
水平分库是把单张表的数据按照一定的规则分布到多个数据库
高可用方案
传统的 HAProxy + keepalived 的方案,基于主从复制
NDB Cluster
基于 NDB 集群存储引擎的 MySQL Cluster
Galera
一种多主同步复制的集群方案
MHA/MMM
一种多主的高可用架构
MGR
InnoDB Cluster
优化器 —SQL语句分析与优化
查询慢日志
EXPLAIN 执行计划
查询序列编号(id)
id 值不同的时候,先查询 id 值大的(先大后小)
select type 查询类型
SIMPLE
简单查询,不包含子查询,不包含关联查询 union
PRIMARY
子查询 SQL 语句中的主查询,也就是最外面的那层查询
SUBQUERY
子查询中所有的内层查询都是 SUBQUERY 类型的
DERIVED
衍生查询,表示在得到最终查询结果之前会用到临时表
UNION
用到了 UNION 查询
UNION RESULT
主要是显示哪些表之间存在 UNION 查询
type 连接类型
const
主键索引或者唯一索引,只能查到一条数据的 SQL
system
system 是 const 的一种特例,只有一行满足条件
eq_ref
一般是唯一性索引的查询(UNIQUE 或 PRIMARY KEY)
ref
查询用到了非唯一性索引,或者关联操作只使用了索引的最左前缀
range
索引范围扫描
index
查询全部索引中的数据(比不走索引要快)
all
如果没有索引或者没有用到索引,type 就是 ALL。代表全表扫描
存储引擎
MyISAM
InnoDB
csv
不允许空行,不支持索引。格式通用,可以直接编辑
Archive
不支持索引,不支持 update delete
字段定义
字符类型
非空
非空字段尽量定义成 NOT NULL,提供默认值,或者使用特殊值、空串代替 null
0 条评论
回复 删除
下一页