MySQL 性能方案
翻译自 dev.mysql.com/doc/refman/5.6/en/performance-schema.html
一、3个基本库
数据库初始化安装完毕会有三个基本库mysql 、information_schema、performace_schema。作为应用程序开发者,平时较少关注这些数据库尤其是后两者。但是通过对这些基本数据库的学习,必然会对数据库存储有更好的理解。
mysql
包含权限配置,事件,存储引擎状态,主从信息,日志,时区信息,用户权限配置等
information_schema
对数据库元数据的抽象分析,由此提供了SQL语句方式来查询数据库运行时状态,每次对information_schema的查询都产生对metadata的互斥访问,影响其他数据库的访问性能。
performance_schema
内存型数据库,使用performance_schema 存储引擎,通过事件机制将mysql服务的运行时状态采集并存储在performace_schema数据库。注意,两个单词之间用下划线连接时,表示performance_schema是一个数据库;用空格分开时,表示一个数据库性能方案,也表示一个存储引擎。
二、performance schema
2.1 特性
一个数据库性能方案,它提供了对运行时数据库服务进行内部检查的方式,这个方案通过performace schema存储引擎和performance_schema数据库进行了实现。这个方案关注mysql数据库服务的运行时的性能数据,而information_schema主要用于对元数据的检查。
性能方案监控了服务事件,事件是服务所花费时间来做并被感知到的任何事,因为被感知到,这些事件的时间信息可以被收集。总的来说,一个事件可以是函数调用、一个系统等待,一个数据查看语句的执行阶段(比如解析、分类),或者整个语句、整组语句,甚至是临界文件、表I/O、表级锁和数据库存储引擎的同步调用信息。
性能方案的事件不同于被写进服务日志中的事件(描述了数据修改)和调度事件(存储程序类型)
性能方案特定于一个数据库服务,性能方案数据库中的表关联到数据服务,表的修改不会被备份也不会写进二进制日志。
当前事件是可用的,和历史事件以及总结一样。这使得你可以判断有多少次被感知的活动以及它们的花费时间。时间信息可用来展示特定线程的活动,或着是互斥资源文件的访问活动。
性能方案存储引擎使用“感知点“”来收集事件数据
被收集的事件存储在performance_schema数据库,可以通过select语句进行查询。
性能方案配置可以被动态的执行SQL来修改,配置的改变会立即影响到数据收集。
性能数据库的表是内存型,没有持久化到磁盘存储,这些数据表在服务停止时被丢弃,服务启动时再次创建。
监控可用于所有被mysql支持的平台。
一些局限性可能存在:定时器的类型在不同平台上差异巨大,应用在多种存储引擎的工具可能不适用于所有的存储引擎。第三方引擎的工具服从于引擎维护者。
数据收集通过修改服务源码添加工具来实现。有几个不可分离的进程与性能方案有关,不同于其他备份或事件调度等特性。
2.2 性能方案计划用于获取服务执行的有用信息,在此期间对服务性能产生很小的影响,目的实现下面这些设计目标:
使用性能方案不对服务运行产生变化,例如,不会造成线程调度的改变,不造成查询执行计划(用explain展示)的改变。
在服务启动时,分配的内存不会超出,通过使用先前固定大小的分配结构,没有必须再去调整或重分配内存,对于实现很好的运行时性能至关重要。
服务监控持续发生并很少发生溢出,激活性能方案不会让服务不可用。
SQL解析不改变,没有新的关键字或语句。
甚至性能方案失败了,服务依旧进行。
当性能进程在事件收集初期或事件获取之后选择时,优先选择让收集进程执行更快的那个,因为收集不管进行而获取是按需进行甚至不会发生。
很容易添加新的工具点。
工具是版本化的,如果工具的实现改变了,先前的工具代码会继续工作。这让第三方插件的开发者受益,因为没必要为了与最新的性能方案保持同步而升级每一个插件。
MySQL 性能方案的更多相关文章
- mysql 性能优化方案
网 上有不少MySQL 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果 ...
- mysql 性能优化方案1
网 上有不少mysql 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果 ...
- mysql 性能优化方案 (转)
网 上有不少mysql 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果 ...
- redmine在linux上的mysql性能优化方法与问题排查方案
iredmine的linux服务器mysql性能优化方法与问题排查方案 问题定位: 客户端工具: 1. 浏览器inspect-tool的network timing工具分析 2. 浏览 ...
- MySQL性能调优与架构设计——第 17 章 高可用设计之思路及方案
第 17 章 高可用设计之思路及方案 前言: 数据库系统是一个应用系统的核心部分,要想系统整体可用性得到保证,数据库系统就不能出现任何问题.对于一个企业级的系统来说,数据库系统的可用性尤为重要.数据库 ...
- [MySQL性能优化系列]LIMIT语句优化
1. 背景 假设有如下SQL语句: SELECT * FROM table1 LIMIT offset, rows 这是一条典型的LIMIT语句,常见的使用场景是,某些查询返回的内容特别多,而客户端处 ...
- MySQL 性能优化
内容简介:这是一篇关于mysql 性能,mysql性能优化,mysql 性能优化的文章.网上有不少mysql 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与负责,同样的设置 ...
- MySQL性能优化的21个最佳实践
http://www.searchdatabase.com.cn/showcontent_38045.htm MySQL性能优化的21个最佳实践 1. 为查询缓存优化你的查询 大多数的MySQL服务器 ...
- MySQL 性能监控 4 大指标
[编者按]本文作者为 John Matson,主要介绍 mysql 性能监控应该关注的 4 大指标. 文章系国内 ITOM 管理平台 OneAPM 编译呈现. MySQL 是什么? MySQL ...
随机推荐
- MySQL · 引擎特性 · InnoDB奔溃恢复
前言 数据库系统与文件系统最大的区别在于数据库能保证操作的原子性,一个操作要么不做要么都做,即使在数据库宕机的情况下,也不会出现操作一半的情况,这个就需要数据库的日志和一套完善的奔溃恢复机制来保证.本 ...
- 玩玩微信公众号Java版之一:配置微信公众平台服务器信息
在进行微信公众平台开发前,前先做好准备工作,好了以后,我们可以开始啦! 第一.准备好服务端接口 定义一个http服务接口,主要分为如下几步: 1.创建一个servlet类,用来接收请求: ...
- PHP安装sqlsrv扩展步骤,PHP如何连接上SQL
今天捣鼓了一天,终于把PHP的sqlsrc扩展给弄好了.为了让PHP能够顺利连接上MSSQL,实在不易. 第一步:安装Wampserver 我安装的是Wampserver 2.4.17版本.注意:安装 ...
- app耗电优化之四 使用AlarmManager对任务进行合理安排
AlarmManager 是用来设定定时任务.即用来设定那个任务在什么时候开始执行.为什么和省电有关系?这个需要和AlarmManager的使用先说起.AlarmManager 实际上只起到一个定时发 ...
- Spring阅读方法
转自:http://www.cnblogs.com/xing901022/p/4178963.html 最近没什么实质性的工作,正好有点时间,就想学学别人的代码.也看过一点源码,算是有了点阅读的经验, ...
- BFC基础分析
W3C官方对于BFC的描述只有3小段,强烈建议想理解BFC的朋友先去看看,链接见文末. 常见的文档流分为:定位流.浮动流.普通流3种.BFC是普通流中的一种. 本文提出3个问题并给出使用BFC来解决这 ...
- 学生问的一道javascript面试题[来自腾讯]
function Parent() { this.a = 1; this.b = [1, 2, this.a]; this.c = { demo: 5 }; this.show = function ...
- 暑假集训D9总结
考试 几乎绝望的考试= =,感觉自己啥都打不出来= =,就一道DP打了个贪心,剩下两道骗分,然而竟然排到前一半= =,不可思议= = 真是令人窒息的操作啊= = T1 [bzoj1592] Maki ...
- Linux常用脚本命令总结
基本操作 通用操作 1. export 显示所有的环境变量,也可以获取到某个变量的详细信息: export # 显示所有 echo $SHELL # 只显示SHELL 2. whereis 使用系统自 ...
- ASP.NET 导出excel文件出现乱码的解决办法
string html =TABLE ;//<table>标签,可以是多张表string modified = Regex.Replace(html, "<table &g ...