MySQL优化概述

数据库层面优化

三点:表,查询,配置

为了让数据库应用更快,需要检视以下几个问题:

1、  表结构是否是合适的?比如:列是否有正确的数据类型,每张表相对于其工作职责是否有合适的列。

2、  为了使查询效率更高,建立了正确的索引?

3、  每张表使用了合适的存储引擎,利用了每个存储引擎的特点? InnoDB(in-no-db)为事务型,MyISAM(my-z[ei]m)为非事务型。

4、  每张表使用了合适的行格式?这个取决于存储引擎的选择。压缩数据库(建表时加上ROW_FORMAT=COMPRESSED)使用更少的磁盘空间,读写数据时更少的I/O。压缩适用于各类InooDB表,只适用于只读MyISAM表。

5、  应用使用合适的锁策略?存储引擎的选择是重要的。InnoDB会内部处理锁问题。

6、  所有的缓存大小是正确的?缓存大小需要足够大,但超过物理内存时会引起换页。主要的三个参数:InnoDB buffer pool, MyISAM key cache, MySQL query cache。

 

硬件层面优化

系统瓶颈可通过以下因素提升:

1、  磁盘寻道。磁盘寻找一片数据的时间。现代磁盘寻道时间约为10ms,理论上1s可以有100次寻道。最新磁盘的寻道时间提升缓慢,对单个表来说很难优化。可以通过把数据分发在多个磁盘上进行优化。

2、  磁盘读写。一个磁盘的读写速度是10-20MB/s。这个是比寻道时间容易优化,可以从多个磁盘并行读。

3、  CPU周期。

4、  内存带宽。

 

平衡可移植性和性能

在可移植的MySQL项目中使用面向性能的的SQL扩展语法时,语句中加上MySQL特定关键字/*!  */,其它SQL服务会忽略。


优化分为以下方面:

1、SQL语句优化

2、索引优化

3、表结构优化

4、InnoDB表的优化

5、MyISAM表的优化

6、MEMORY表的优化

7、分析查询执行计划

8、控制查询优化器

9、缓冲大小

10、锁操作优化

11、MySQL服务器优化

12、性能测试

13、评估线程信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值