mysql-高级

2020-10-23  本文已影响0人  西海岸虎皮猫大人

1 架构

可插拔架构将查询与存储分离
连接层 - 服务层 - 引擎层 - 存储层
connections -> connection pool -> parser | optimizer | caches&buffers -> myisam | innodb -> file system
optimizer - 优化器

2 优化

执行 | 等待 时间长
sql执行顺序

from
on
where
group by
having
select
distinct
order by
limit

几种join
几种join
索引
索引

排好序的快速查找数据结构,指向数据
索引影响查找和排序
逻辑删除为了业务留记录,并且索引失效(人肉运维,重建索引)
update操作需要重建索引
索引大以文件形式存磁盘
通常B树,单值索引B+树
复合索引优于单值索引
单表索引最好不要超过5个
唯一索引: 索引值必须唯一,但可以为空

检索原理
检索原理

3层的b+树可以表示百万级别的数据

需索引

主键自动建
频繁查询字段
外键字段
(频繁更新字段不适合建索引)
排序字段
统计或分组字段(分组必排序)

不要建索引

mysql 300w以后性能下降
高重复平均分布字段

性能分析

query optimizer
常见瓶颈: cpu io 硬件瓶颈

3 explain

explain + sql语句

explain结果解释

id | select_type | table | type | possible_keys | key | key_len | ref | rows

上一篇 下一篇

猜你喜欢

热点阅读