第1章 mysql优化介绍
我们优化mysql要把持一个理念 优化是为的业务的持续性 高效性
但通常事实告诉我们 结果与其期待往往相反 (优化后更慢了)
优化有风险 涉足需谨慎
1.1 优化的风险
优化不是单纯的对一个数据库进行优化 可能是一个复杂的已投产的环境进行优化
优化手段本来就有很大的风险,只不过你没能力意识到和预见到!
任何的技术可以解决一个问题,但必然存在带来一个问题的风险!
对于优化来说解决问题而带来的问题控制在可接受的范围内才是有成果。
保持现状或出现更差的情况都是失败!
稳定性和业务可持久性通常比性能更加重要
优化不可避免涉及到变更,变更就有风险!
优化使性能变好,维持和变差是等概率事件!
优化不能只是数据库管理员担当风险,但会所有的人分享优化成果!
所以优化工作是由业务需要驱使的!!!
1.2 参与优化人员
DBA 数据库管理员 必须在场 提出和执行优化
DEV 业务部门代表 应用程序架构师,设计人员 开发人员 (问题点)
SA 硬件及系统管理员 存储管理员
1.3 优化的思路
优化的范围
- 存储、主机和操作系统: 包括但不限于
a. 主机架构稳定性
b. I/O规划及配置
c. Swap
d. OS内核参数
e. 网络问题
- 应用程序 (index lock session)
应用程序稳定性和性能
a. SQL 语句性能
b. 串行访问资源
c. 性能欠佳会话管理 ( 主要取出问题语句)
- 数据库优化: ( 内存 数据库设计( 架构) 参数)
a. 内存
b. 数据结构( 物理方面&& 逻辑方面)
c. 实例配置
1.4 优化金字塔
向上 效果好 代价低 向下成本高 效果也还行
架构优化是代价最高的 成熟的架构效果是最好的