数据库性能取决于数据库级别的几个因素,好比表、查询和配置设置,这些软件构造致使了硬件级别的CPU和I/O操做,你必须将其最小化并尽量提升效率。在研究数据库性能时,首先要学习软件方面的高级规则和指导原则,并使用壁钟时间测量性能。数据库
典型用户的目标是从现有的软件和硬件配置中得到最佳的数据库性能,高级用户寻找机会来改进MySQL软件自己,或者开发本身的存储引擎和硬件设备来扩展MySQL生态系统。缓存
使数据库应用程序快速运行的最重要因素是它的基本设计:服务器
你是否为每一个表使用了适当的存储引擎,并利用了所使用的每一个存储引擎的优势和特性?特别是,选择事务性存储引擎(如InnoDB
)或非事务性存储引擎(如MyISAM
)对性能和可伸缩性很是重要。并发
InnoDB
是建立新表的默认存储引擎,在实践中,先进的InnoDB
性能特性意味着InnoDB
表一般比简单的MyISAM
表表现得更好,特别是对于繁忙的数据库。
InnoDB
表的工做负载,也适用于只读MyISAM
表。InnoDB
存储引擎能够在不须要你参与的状况下处理大多数锁定问题,从而提升数据库的并发性,减小代码的实验和调优量。InnoDB
缓冲池和MyISAM
键缓存。随着数据库变得愈来愈忙,任何数据库应用程序最终都会遇到硬件限制,DBA必须评估是否能够调优应用程序或从新配置服务器以免这些瓶颈,或者是否须要更多的硬件资源,系统瓶颈一般来自如下来源:性能
要在可移植MySQL程序中使用面向性能的SQL扩展,能够在/*! */
注释分隔符内的语句中封装特定于MySQL的关键字,其余SQL服务器忽略已注释的关键字。学习