| 
                        副标题[/!--empirenews.page--]
                            
1 前言
在进行 MySQL 的优化之前必须要了解的就是 MySQL 的查询过程,很多的查询优化工作实际上就是遵循一些原则让 MySQL 的优化器能够按照预想的合理方式运行而已。 
  
2 优化的哲学
2.1 优化可能带来的问题
    - 优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统。
 
    - 优化手段本来就有很大的风险,只不过你没能力意识到和预见到!
 
    - 任何的技术可以解决一个问题,但必然存在带来一个问题的风险!
 
    - 对于优化来说解决问题而带来的问题,控制在可接受的范围内才是有成果。
 
    - 保持现状或出现更差的情况都是失败!
 
 
2.2 优化的需求
    - 稳定性和业务可持续性,通常比性能更重要!
 
    - 优化不可避免涉及到变更,变更就有风险!
 
    - 优化使性能变好,维持和变差是等概率事件!
 
    - 切记优化,应该是各部门协同,共同参与的工作,任何单一部门都不能对数据库进行优化!
 
    - 所以优化工作,是由业务需要驱使的!!!
 
 
2.3 优化由谁参与
在进行数据库优化时,应由数据库管理员、业务部门代表、应用程序架构师、应用程序设计人员、应用程序开发人员、硬件及系统管理员、存储管理员等,业务相关人员共同参与。 
3 优化思路
3.1 优化什么
在数据库优化上有两个主要方面:即安全与性能。 
安全 → 数据可持续性 
性能 → 数据的高性能访问 
3.2 优化的范围有哪些
存储、主机和操作系统方面: 
    - 主机架构稳定性
 
    - I/O规划及配置
 
    - Swap交换分区
 
    - OS内核参数和网络问题
 
 
应用程序方面: 
    - 应用程序稳定性
 
    - SQL语句性能
 
    - 串行访问资源
 
    - 性能欠佳会话管理
 
    - 这个应用适不适合用MySQL
 
 
数据库优化方面: 
说明:不管是在,设计系统,定位问题还是优化,都可以按照这个顺序执行。 
3.3 优化维度
数据库优化维度有四个: 
  
优化选择 
优化成本:硬件>系统配置>数据库表结构>SQL及索引 
优化效果:硬件<系统配置<数据库表结构 
 
4 优化工具有啥?
4.1 数据库层面
检查问题常用工具 
- mysql 
 - msyqladmin                                 mysql客户端,可进行管理操作 
 - mysqlshow                                  功能强大的查看shell命令 
 - show [SESSION | GLOBAL] variables          查看数据库参数信息 
 - SHOW [SESSION | GLOBAL] STATUS             查看数据库的状态信息 
 - information_schema                         获取元数据的方法 
 - SHOW ENGINE INNODB STATUS                  Innodb引擎的所有状态 
 - SHOW PROCESSLIST                           查看当前所有连接session状态 
 - explain                                    获取查询语句的执行计划 
 - show index                                 查看表的索引信息 
 - slow-log                                   记录慢查询语句 
 - mysqldumpslow                              分析slowlog文件的 
 
  
                                                (编辑:52站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |