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 ...
随机推荐
- Maven服务器搭建
Nexus服务器软件安装和配置 目前比较流行的使用nexus搭建maven私有服务器,其实很简单,它就是一个web系统,从官方下载的包默认内嵌了jetty容器,所以需要提前安装好JVM,并配置好环境变 ...
- RabbitMQ系列教程之七:RabbitMQ的 C# 客户端 API 的简介
今天这篇博文是我翻译的RabbitMQ的最后一篇文章了,介绍一下RabbitMQ的C#开发的接口.好了,言归正传吧. Net/C# 客户端 API简介1.主要的命名空间,接口和类 定义核心的API的 ...
- 迭代器 Iterator
迭代器 Iterator 2016-5-7 可以这样说,迭代器统一了对容器的访问方式. 考虑这样的情景:原本是对着List编码,但是后来发现需要把相同的代码用于Set.我们需要一种不关心容器类型 而能 ...
- zTree学习实例
今天做完一个zTree的实例,供有需要的学习! 效果图如下:
- 【Splay】例题
营业额统计 题目背景 HNOI2002 DAY2 T2 题目描述 Tiger 最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger 拿出了公司 ...
- tensorflow softplus应用
1.softplus函数表达式 图像: 2.tensorflow 举例 import tensorflow as tf input=tf.constant([0,1,2,3],dtype=tf.flo ...
- [Tyvj模拟赛]运
运 题目 [问题背景]zhx 和妹子们玩数数游戏. [问题描述] 仅包含4或7的数被称为幸运数.一个序列的子序列被定义为从序列中删去若干个数, 剩下的数组成的新序列.两个子序列被定义为不同的当且仅当其 ...
- unable to create …
问题描述: 在新建Android Application时会出现unable to create the selected property page 解决方法: 将用户PATH路径中的jdk路径放到 ...
- MapReduce框架Hadoop应用(一)
Google对其的定义:MapReduce是一种变成模型,用于大规模数据集(以T为级别的数据)的并行运算.用户定义一个map函数来处理一批Key-Value对以生成另一批中间的Key-Value对,再 ...
- iOS底层学习-KVC使用实践以及实现原理
简介 KVC(Key-value coding)键值编码,顾名思义.额,简单来说,是可以通过对象属性名称(Key)直接给属性值(value)编码(coding)"编码"可以理解为& ...