使用Oprofile定位my sql性能瓶颈

合集下载

Linux操作系统内核性能测试与调优

Linux操作系统内核性能测试与调优

Linux操作系统内核性能测试与调优操作系统是计算机系统中最核心的软件之一,它负责协调和管理计算机硬件资源以及提供统一的用户界面。

Linux操作系统因其开放源代码、稳定性和安全性而备受欢迎。

然而,在大规模和高负载的环境中,Linux操作系统的性能可能会出现瓶颈。

因此,进行内核性能测试与调优是非常重要的。

一、性能测试的重要性在处理大量数据和并发用户请求时,操作系统的性能会成为瓶颈。

通过性能测试,我们可以了解操作系统在不同负载情况下的表现,进而定位和解决性能瓶颈。

性能测试有助于提高系统的响应时间、吞吐量和并发性能,从而确保系统的稳定运行。

二、性能测试的分类1. 压力测试:通过模拟实际用户行为或产生大量虚拟用户,并观察系统在负载增加的情况下的响应时间和吞吐量。

常用的压力测试工具包括Apache JMeter和Gatling等。

2. 负载测试:通过模拟实际业务场景,并且能够测试系统在高负载情况下的响应能力和稳定性。

这种测试方法可以帮助我们发现系统在繁忙时是否仍然能够正常工作,并识别可能存在的性能瓶颈。

3. 并发测试:通过模拟多个并发用户并行执行相同或不同的操作,以验证系统在并发访问下的性能表现。

这种测试方法可以评估系统的并发处理能力和资源利用率。

三、内核性能调优的重要性Linux操作系统的性能与其内核配置息息相关。

对内核的性能调优可以提高系统的响应速度、降低延迟和提高吞吐量。

通过调整内核参数和优化内核模块,可以使操作系统更好地适应特定的工作负载。

四、内核性能调优的方法1. 内核参数调整:根据系统的工作负载特点,适当调整内核参数。

例如,可以通过修改TCP/IP堆栈参数来提高网络性能,或者通过修改文件系统参数来提高磁盘I/O性能。

2. 内核模块优化:优化内核使用的模块,选择性加载和卸载不必要的模块,以减少内核的资源占用和启动时间。

3. 中断处理优化:通过合理分配和调整中断处理的优先级,减少中断处理的开销,提高系统的性能。

mysql性能优化-慢查询分析、优化索引和配置

mysql性能优化-慢查询分析、优化索引和配置

mysql性能优化-慢查询分析、优化索引和配置目录一、优化概述二、查询与索引优化分析1性能瓶颈定位Show命令慢查询日志explain分析查询profiling分析查询2索引及查询优化三、配置优化1) max_connections2) back_log3) interactive_timeout4) key_buffer_size5) query_cache_size6) record_buffer_size7) read_rnd_buffer_size8) sort_buffer_size9) join_buffer_size10) table_cache11) max_heap_table_size12) tmp_table_size13) thread_cache_size14) thread_concurrency15) wait_timeout一、优化概述MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。

磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候那么平瓶颈就会出现在网络上,我们可以用mpstat, iostat, sar和vmstat来查看系统的性能状态。

除了服务器硬件的性能瓶颈,对于MySQL系统本身,我们可以使用工具来优化数据库的性能,通常有三种:使用索引,使用EXPLAIN分析查询以及调整MySQL的内部配置。

二、查询与索引优化分析在优化MySQL时,通常需要对数据库进行分析,常见的分析手段有慢查询日志,EXPLAIN 分析查询,profiling分析以及show命令查询系统状态及系统变量,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。

1 性能瓶颈定位Show命令我们可以通过show命令查看MySQL状态及变量,找到系统的瓶颈:Mysql> show status ——显示状态信息(扩展show status like ‘XXX’)Mysql> show variables ——显示系统变量(扩展show variables like ‘XXX’)Mysql> show innodb status ——显示InnoDB存储引擎的状态Mysql> show processlist ——查看当前SQL执行,包括执行状态、是否锁表等Shell> mysqladmin variables -u username -p password——显示系统变量Shell> mysqladmin extended-status -u username -p password——显示状态信息查看状态变量及帮助:Shell> mysqld –verbose –help [|more #逐行显示]比较全的Show命令的使用可参考: //18/慢查询日志慢查询日志开启:在配置文件f或my.ini中在[mysqld]一行下面加入两个配置参数log-slow-queries=/data/mysqldata/slow-query.loglong_query_time=2注:log-slow-queries参数为慢查询日志存放的位置,一般这个目录要有mysql的运行帐号的可写权限,一般都将这个目录设置为mysql的数据存放目录;long_query_time=2中的2表示查询超过两秒才记录;在f或者my.ini中添加log-queries-not-using-indexes参数,表示记录下没有使用索引的查询。

数据库性能调优中的瓶颈定位与解决方法

数据库性能调优中的瓶颈定位与解决方法

数据库性能调优中的瓶颈定位与解决方法在进行数据库性能调优时,识别和解决瓶颈是一个至关重要的步骤。

数据库瓶颈会导致性能下降,影响应用程序的响应时间,降低用户体验。

本文将介绍数据库性能调优中常见的瓶颈,并提供相应的解决方法,帮助您更好地优化数据库性能。

一、磁盘IO瓶颈磁盘IO瓶颈是数据库性能调优中经常遇到的问题。

它指的是当数据库需要大量的读写操作时,磁盘无法以足够高的速度响应请求,导致性能下降。

下面是一些解决磁盘IO瓶颈的方法:1. 使用RAID技术:RAID可以将多个磁盘组合成一个逻辑磁盘,从而提高数据的读写速度和容错能力。

常见的RAID级别有RAID 0、RAID 1、RAID 5等,根据应用需求选择合适的RAID级别。

2. 使用SSD磁盘:相比于传统的机械磁盘,固态硬盘(SSD)具有更快的读写速度和更低的延迟。

将数据库的存储设备替换为SSD磁盘可以显著提高数据库的性能。

3. 使用分区和索引:通过将数据分成较小的块并使用索引进行访问,可以减少对磁盘的IO操作,提高数据库的查询和更新性能。

二、查询优化瓶颈查询是数据库最常见的操作,但是不正确的查询方式和缺乏优化可能导致性能下降。

以下是一些解决查询优化瓶颈的方法:1. 使用合适的索引:索引可以加快查询速度,但是过多或者过少的索引都会对数据库性能产生负面影响。

根据实际查询需求和数据分布情况,选择合适的索引来优化查询性能。

2. 避免全表扫描:全表扫描是指没有使用索引,而是对整个表进行扫描的查询操作。

全表扫描通常会导致性能下降,尽量避免全表扫描,使用索引来加速查询。

3. 使用合适的算法:对于一些复杂的查询,选择适当的算法可以提高查询性能。

例如,对于大数据集合的连接操作,可以考虑使用哈希连接或者排序合并连接来加快查询速度。

三、内存不足瓶颈数据库的内存不足可能导致瓶颈,因为内存是数据库缓存和执行查询所需的关键资源。

以下是一些解决内存不足瓶颈的方法:1. 增加内存容量:将更多的内存分配给数据库,可以提高缓存的效果,降低磁盘IO的需求,从而提高查询和更新操作的性能。

Oprofile使用指南

Oprofile使用指南

按照默认设置,每个事件都收集内核模式和用户模式的信息。

要配置 OProfile 在某个指定的计数器中不计数内核模式的事件,执行以下命令(这里的N是计数器号码):opcontrol --ctr N-kernel=0执行以下命令来再次启动计数器的建档内核模式:opcontrol --ctr N-kernel=1要配置 OProfile 不计数某个指定计数器的用户模式的事件,执行以下命令(这里的N是计数器号码):opcontrol --ctr N-user=0执行以下命令来再次启动计数器的建档用户模式:opcontrol --ctr N-user=1当 OProfile 守护进程把档案数据写入样品文件,它可以把内核和库档案的数据分成两个单独的样品文件。

要配置守护进程写入样品文件的方式,以根用户身份执行以下命令:opcontrol --separate=<choice><choice>可以是以下之一:none — 不要分离档案(默认)library — 为库生成每个应用程序的档案kernel — 为内核和内核模块生成每个应用程序的档案all — 为库生成每个应用程序的档案,为内核和内核模块生成每个应用程序的档案如果--separate=library被使用,抽样文件名在包括可执行文件名称的同时还包括库的名称。

第3节启动和停止 OProfile要使用 OProfile 来开始监视系统,以根用户身份执行以下命令:opcontrol --start所显示的输出和下面相似:Using log file /var/lib/oprofile/oprofiled.logDaemon started.Profiler running./root/.oprofile/daemonrc中的设置被使用。

OProfile 守护进程oprofiled被启动;它定期把样品数据写入/var/lib/oprofile/samples/目录。

瓶颈管理-怎样查出SQLServer的性能瓶颈 精品

瓶颈管理-怎样查出SQLServer的性能瓶颈 精品

怎样查出SQLServer的性能瓶颈--王成辉翻译整理,转贴请注明出自微软BI开拓者[url].windbi.[/url]--原帖地址如果你曾经做了很长时间的DBA,那么你会了解到SQLServe的性能调优不是一个精密的科学。

即使是,对于为最佳的性能找到最佳的配置也是很困难的。

这是因为对于调优来说很少东西是绝对的。

例如,一个性能调优可能对某一方面有用,可是却会影响其他的性能。

我曾经做过DBA,在最后7年的日子里,我总结了一套SQLServer调优的清单。

当第一次进行SQLServer性能调优的时候,可以用它来作为一个向导。

我经常被邀请去检查SQLServer并提供一些性能方面的建议。

直到现在,我还没有真正写下一个贯穿整个性能调优过程的方案。

但是当我做了越来越多的性能调优的咨询工作后,我现在决定花点时间整理出来。

你将会发现它是很有用的,就象我发现对我的用处一样.SQLServer性能监控这套性能优化的清单将至少准科学的帮助你找出你的SQLServer任何明显的性能问题。

说是这样说,SQLServer的性能调优仍然是很困难的。

我试图用这套清单去找出“容易”的sqlserver性能问题,困难的留待稍后。

我这样做是因为很容易将容易和困难的的性能调优问题搞混。

通过列出一个“容易”的性能调优范围,就很容易的将这些问题解决,一旦解决了这些容易的问题,那么你就能集中去解决更困难的问题。

使用这个SQLServer性能调优清单的一个好处是,它将不仅仅告诉你目前最容易解决的性能问题是什么,而且还帮助你正确的去解决。

在某种程度上,你可以选择不同的顺序进行。

换句话说,你可以故意做出特殊的决定而不是按照清单通常的顺序进行。

某种意义上说你是对的,不是所有的性能调优建议都适合所有的情形。

另外,你的决定是基于你的资源限制,例如没有足够的钱去买满足负荷的硬件。

如果真是那样的话,你就别无选择了。

还有,你的决定可能基于一些政治原因,那是你不得不作出的改变。

数据库查询优化中的常见性能瓶颈与解决方案(十)

数据库查询优化中的常见性能瓶颈与解决方案(十)

数据库查询是开发人员在日常工作中经常遇到的任务之一,尤其在大型应用程序中,对于数据库查询优化的需求更加迫切。

然而,在进行数据库查询优化时,常常会遇到一些性能瓶颈。

本文将从索引、查询语句、数据模型以及硬件等方面探讨常见的数据库查询性能瓶颈,并提供相应的解决方案。

一、索引使用不当索引是数据库中用于提高查询性能的重要手段之一,但是索引的不当使用也会成为性能瓶颈之一。

首先,索引的选择是关键,过多或过少的索引都会导致查询性能下降。

过多的索引会增加写操作的开销,并占用较大的存储空间,而过少的索引则会降低查询速度。

因此,需要根据具体查询需求选择适当的索引。

其次,注意索引的列选择。

在选择索引的列时,应优先选择用于过滤数据的列,即选择具有高选择性的列作为索引的列。

例如,在一个用户表中,用户姓名可能有重复,但是身份证号一般是唯一的,因此,选择身份证号作为索引列可以更好地提升查询性能。

解决方案:评估查询需求,根据具体场景选择适当的索引,并注意索引列的选择。

二、查询语句编写不当查询语句的编写也是影响数据库查询性能的重要因素之一。

一方面,需要避免全表扫描。

全表扫描意味着数据库需要遍历整个表格,这对于大型表格来说显然非常耗时。

因此,在编写查询语句时,应该尽量利用索引,通过索引定位到需要查询的数据,减少全表扫描的次数。

另一方面,需要避免过多的连接操作。

连接操作可以将多个表格中的数据进行关联,但是过多的连接操作会增加查询语句的复杂度,并且消耗较多的计算资源。

因此,在编写查询语句时,应该尽量减少连接操作,或者通过其他方式优化连接操作。

解决方案:利用索引减少全表扫描次数,减少连接操作的次数和复杂度。

三、数据模型设计不合理数据库的数据模型设计也是影响查询性能的关键因素之一。

一个不合理的数据模型设计可能导致查询性能低下。

例如,如果将数据拆分到多个表格中,那么在进行关联查询时就会增加复杂度和查询时延。

另外,如果在一个表格中存储了大量冗余数据,那么查询时也会消耗较多的时间。

数据库性能调优的常见瓶颈与解决方法

数据库性能调优的常见瓶颈与解决方法

数据库性能调优的常见瓶颈与解决方法随着互联网的快速发展,数据量的指数级增长使得数据库的性能调优成为了迫切需要解决的问题。

优化数据库性能可以提高系统的响应速度,降低服务器的负载,提升用户体验,因此是数据库管理工作中的重要环节。

数据库性能问题往往由一系列瓶颈导致,下面将介绍几种常见的数据库性能瓶颈及解决方法。

1. 硬件限制与数据库配置不匹配硬件性能直接影响数据库的响应速度,如果硬件配置不足以支撑数据库的负载需求,会造成性能瓶颈。

此外,数据库的配置参数也需要根据硬件环境进行合理设置。

解决方法:- 增加硬件资源:提升CPU、内存、磁盘等硬件性能,以支撑数据库的高并发操作。

- 合理配置数据库参数:根据硬件环境和业务需求,调整数据库参数,如连接数、缓冲区大小、并发线程数等。

2. 查询优化不当数据库查询是常见的性能瓶颈之一,一些查询可能消耗大量的时间和计算资源,导致系统相应速度下降。

解决方法:- 创建合适的索引:索引能够加快查询速度,根据业务需求创建适当的索引,避免全表扫描。

- 优化查询语句:避免使用复杂的SQL语句,尽量简化查询语句,减少数据库的压力。

- 使用合理的连接方式:避免使用大量子查询,可以考虑使用JOIN操作来提高查询的效率。

3. 数据库设计不合理数据库的设计也直接影响着数据库性能,如果数据库结构不合理,数据量庞大或者表之间的关系复杂,都可能导致性能问题。

解决方法:- 合理划分表和字段:根据实际需求,将数据划分到不同的表中,设计合适的字段并控制冗余。

- 优化数据模型:避免使用过多的关联操作(JOIN),尽可能地减少数据库中冗余的数据。

- 正确选择存储引擎:根据业务需求,选择适合的存储引擎,如InnoDB或MyISAM等。

4. 锁竞争与死锁在多用户访问的情况下,锁的竞争和死锁问题是常见的数据库性能瓶颈。

解决方法:- 减少锁冲突:合理设计数据库事务,减少事务并发冲突,避免长时间占用锁资源。

- 设置合理的锁粒度:根据业务需求,设置合适的锁粒度,尽量减少锁竞争的频率。

MYSQL数据库服务器性能分析的方法命令有哪些

MYSQL数据库服务器性能分析的方法命令有哪些

MYSQL数据库服务器性能分析的方法命令有哪些?在 MySQL 中进行性能分析可以使用一系列的命令和工具,这些命令能够帮助你了解数据库服务器的运行状况、性能瓶颈和优化机会。

以下是一些常用的 MySQL 性能分析命令:SHOW STATUS:SHOW STATUS 命令用于显示各种服务器状态变量,这些变量包含了关于服务器性能和状态的信息。

例如,可以查看连接数、线程状态、查询缓存的使用情况等。

sqlCopy codeSHOW STATUS;SHOW PROCESSLIST:SHOW PROCESSLIST 显示当前运行的线程列表,包括线程的 ID、状态、执行时间等。

可以用来查看哪些查询正在执行,以及它们的执行状态。

sqlCopy codeSHOW PROCESSLIST;EXPLAIN:EXPLAIN 用于分析 SELECT 查询的执行计划,显示 MySQL 如何执行查询。

通过查看执行计划,可以了解索引的使用情况、表的连接方式等,从而优化查询。

sqlCopy codeEXPLAIN SELECT * FROM your_table WHERE your_condition;SHOW ENGINE INNODB STATUS:SHOW ENGINE INNODB STATUS 提供了有关 InnoDB 存储引擎的详细信息,包括事务、锁、缓冲池等。

通过查看 InnoDB 状态信息,可以诊断性能问题。

sqlCopy codeSHOW ENGINE INNODB STATUS;SHOW VARIABLES:SHOW VARIABLES 用于显示 MySQL 服务器的配置参数,包括缓冲池大小、连接数限制等。

了解这些参数有助于评估服务器的配置。

sqlCopy codeSHOW VARIABLES;SHOW GLOBAL STATUS:SHOW GLOBAL STATUS 显示了许多全局服务器状态变量,可以用于监控服务器的整体性能。

MySQL中的慢查询日志和性能分析工具

MySQL中的慢查询日志和性能分析工具

MySQL中的慢查询日志和性能分析工具随着计算机技术的不断发展和应用的扩大,数据库的使用变得越来越广泛。

而数据库的性能则成为了一个重要的问题,因为对于大部分应用来说,数据库是一个关键的组件。

MySQL作为一种常用的关系型数据库管理系统,其性能的优化是开发者关注的焦点之一。

在MySQL中,慢查询日志和性能分析工具是帮助我们进行性能优化和诊断的重要工具。

一、慢查询日志慢查询日志是MySQL中一种记录执行时间超过阈值的SQL语句的功能。

通过开启慢查询日志,我们可以了解到哪些SQL语句的执行时间超过了预设的阈值,从而帮助我们定位性能瓶颈。

下面我们来介绍一下如何开启慢查询日志。

在MySQL配置文件f中,可以设置慢查询日志的相关参数。

一般来说,我们需要配置以下几个参数:slow_query_log:是否开启慢查询日志,0表示关闭,1表示开启。

slow_query_log_file:慢查询日志的存储文件路径。

long_query_time:执行时间超过该值的SQL语句将被记录到慢查询日志中,单位为秒。

配置完成后,重启MySQL服务,慢查询日志就会开始记录了。

我们可以通过查看慢查询日志,来找出执行时间较长的SQL语句,以便进行进一步的优化。

除了通过配置文件来开启慢查询日志,我们也可以通过以下方式在运行时动态地开启或关闭慢查询日志:SET GLOBAL slow_query_log = 1; -- 开启慢查询日志SET GLOBAL slow_query_log = 0; -- 关闭慢查询日志通过慢查询日志,我们可以得到SQL语句的执行时间,从而判断哪些SQL语句需要进行性能优化。

然而,仅仅凭借慢查询日志,我们无法得到更加详细和准确的性能分析结果。

所以,MySQL提供了一些性能分析工具,帮助我们更好地了解数据库的性能状况。

二、性能分析工具1. ExplainExplain是MySQL中常用的查询性能分析工具之一。

C语言性能分析与调优工具使用指南

C语言性能分析与调优工具使用指南

C语言性能分析与调优工具使用指南C语言是一种广泛应用于系统和应用程序开发的编程语言。

然而,在开发过程中,我们经常会面临性能问题,例如程序运行速度慢或者内存占用过高。

为了解决这些问题,我们可以利用性能分析与调优工具来帮助我们定位和改善性能瓶颈。

本文将介绍几种常见的C语言性能分析与调优工具,并提供相应的使用指南。

一、GProfGProf是GNU项目中的一款性能分析工具,它可以统计程序中各个函数的执行时间和调用关系。

使用GProf之前,我们需要通过在编译时添加-g选项来生成可调试信息。

接下来,我们需要在程序入口和结束处分别调用__gcov_flush()和monstartup()函数,并在程序执行过程中夹在我们感兴趣的代码段之前和之后调用monenter()和monexit()函数。

使用完毕后,我们可以通过gprof命令来生成和查看分析报告。

二、ValgrindValgrind是一款强大的开源工具套件,其中的Memcheck工具可以帮助我们检测内存使用错误。

通过在编译时添加-g选项来生成可调试信息,并使用valgrind命令来执行程序。

Valgrind会分析程序的内存使用情况,并在检测到内存错误时输出相关信息,例如内存泄漏和访问非法内存等。

我们可以根据Valgrind的提示进行相应的修复与优化。

三、Intel VTuneIntel VTune是一款专业的性能分析工具,适用于多种编程语言。

它可以提供详细的性能分析数据,如CPU使用率、内存使用率和代码的热点函数等。

使用Intel VTune之前,我们需要在编译时添加-pg选项来生成可调试信息,并通过VTune Amplifier来进行性能分析。

VTune Amplifier会收集程序执行期间的各种信息,并生成相应的报告,包括函数执行时间、函数调用关系图等。

四、GCC内建性能分析工具GCC编译器提供了一些内建的性能分析工具,如-fprofile-arcs和-ftest-coverage选项。

MySQL数据库慢查询的排查与优化方法

MySQL数据库慢查询的排查与优化方法

MySQL数据库慢查询的排查与优化方法概述:MySQL是目前互联网应用中最常用的关系型数据库之一,然而,在实际的应用过程中,我们经常会遇到数据库查询变慢的情况。

这不仅影响了应用的性能和用户体验,还可能导致系统崩溃。

因此,对于MySQL数据库慢查询的排查和优化方法是非常重要的。

本文将为大家详细介绍如何有效地排查慢查询问题,并提供相应的优化建议。

一、初步排查问题当我们发现数据库查询变慢时,首先应该进行初步的排查,确定是否是数据库本身存在性能问题。

以下是一些初步排查问题的方法:1. 确认问题的范围:通过监控工具或日志分析,找出出现慢查询的具体时间段或具体的SQL语句,确认问题的范围。

2. 查看系统性能指标:通过监控工具查看MySQL实例的CPU、内存、磁盘IO等系统性能指标,确认是否存在明显的资源瓶颈,例如CPU使用率过高或磁盘IO过于频繁。

3. 检查数据库配置:检查MySQL的配置文件f,确认是否存在一些不合理的配置项,比如缓冲区设置过小、并发连接数设置过高等。

二、分析慢查询日志如果初步排查确定是数据库查询问题,那么接下来我们需要分析MySQL的慢查询日志,以找出导致查询变慢的具体原因。

下面是一些常用的方法和工具:1. 启用慢查询日志:在MySQL配置文件中开启慢查询日志(slow_query_log),并设置slow_query_log_file参数来指定日志文件的位置。

通常,建议将慢查询时间阈值设置为较小的值,例如1秒。

2. 分析慢查询日志:使用pt-query-digest、Percona Toolkit等工具对慢查询日志进行分析,以确定慢查询的原因和性能瓶颈。

- 查询频繁的SQL语句:通过分析慢查询日志中的SQL语句,可以找出查询频次最高的语句。

这些语句可能存在性能问题,需要优化。

- 查询缓慢的索引:通过慢查询日志可以找出执行查询语句时耗时较长的索引。

这些索引可能需要进行优化或重新设计。

- 锁等待和死锁情况:慢查询日志还可以展示出锁等待和死锁的情况。

mysql优化之连接优化(open-files-limit与table_open_cache)

mysql优化之连接优化(open-files-limit与table_open_cache)

mysql优化之连接优化(open-files-limit与table_open_cache)MySQL打开的⽂件描述符限制Can't open file: '.\test\mytable.frm' (errno: 24)[root@localhost ~]# perror 24OS error code 24: Too many open files这就是MySQL的⽂件描述不够⽤了。

先说解决办法,再说背后的原因吧。

1. 如何解决第⼀步:设置OS参数(如果你有权限的话):⽂件/etc/security/limits.conf新增如下⾏:mysql soft nofile 65535mysql hard nofile 65535上⾯的配置,是OS限制各个⽤户能够打开的⽂件描述符限制(hard soft区别参看man ulimit),新增上⾯两⾏,表⽰mysql⽤户能够打开65535个⽂件描述符(可以使⽤lsof -u mysql|wc -l查看当前打开了多少个⽂件描述符)[root@localhost ~]# lsof -u mysql|wc -l63第⼆步:修改MySQL参数:在MySQL配置⽂件f中新增下⾯的⾏open_files_limit =65535innodb_open_files=65535innodb_open_files:This variable is relevant only if you use multiple InnoDB tablespaces. It specifies the maximum number of .ibd files that MySQL can keep open at one time. The minimum value is10. The default value is300if innodb_file_per_tableThe file descriptors used for .ibd files are for InnoDB tables only. They are independent of those specified by the --open-files-limit server option, and do not affect the operation of the table cache.open_files_limit :更改为 mysqld 的可⽤的⽂件描述符数量。

使用 google-perftools 剖析程序性能瓶颈

使用 google-perftools 剖析程序性能瓶颈

google-perftools 简介google-perftools 是一款针对C/C++ 程序的性能分析工具,它是一个遵守BSD 协议的开源项目。

使用该工具可以对CPU 时间片、内存等系统资源的分配和使用进行分析,本文将重点介绍如何进行CPU 时间片的剖析。

google-perftools 对一个程序的CPU 性能剖析包括以下几个步骤。

1. 编译目标程序,加入对google-perftools 库的依赖。

2. 运行目标程序,并用某种方式启动/ 终止剖析函数并产生剖析结果。

3. 运行剖结果转换工具,将不可读的结果数据转化成某种格式的文档(例如pdf,txt,gv 等)。

安装您可以在google-perftools 的网站(/p/google-perftools/downloads/list) 上下载最新版的安装包。

为完成步骤3 的工作,您还需要一个将剖析结果转化为程序员可读文档的工具,例如gv (/software/gv/)。

编译与运行您需要在原有的编译选项中加入对libprofiler.so 的引用,这样在目标程序运行时会加载工具的动态库。

例如本例中作者的系统中,libprofiler.so 安装在"/usr/lib"目录下,所以需要在makefile 文件中的编译选项加入“-L/usr/lib -lprofiler”。

google-perftools 需要在目标代码的开始和结尾点分别调用剖析模块的启动和终止函数,这样在目标程序运行时就可以对这段时间内程序实际占用的CPU 时间片进行统计和分析。

工具的启动和终止可以采用以下两种方式。

a. 使用调试工具gdb 在程序中手动运行性能工具的启动/ 终止函数。

gdb 是Linux 上广泛使用的调试工具,它提供了强大的命令行功能,使我们可以在程序运行时插入断点并在断点处执行其他函数。

具体的文档请参照/software/gdb/,本文中将只对用到的几个基本功能进行简单介绍。

怎样查出SQLServer的性能瓶颈

怎样查出SQLServer的性能瓶颈

怎样查出SQLServer的性能瓶颈SQL Server是一款常用的关系型数据库管理系统,可以用于存储和管理大量的数据。

然而,在使用SQL Server时,我们常常会遇到性能瓶颈的问题,导致数据库操作变慢,影响系统的正常运行。

为了解决这些问题,我们需要对SQL Server进行性能优化,首先要查出性能瓶颈。

下面将详细介绍如何查出SQL Server的性能瓶颈。

第一步:监控系统性能要查出SQL Server的性能瓶颈,首先要对系统的性能进行监控。

可以使用SQL Server自带的性能监视工具,如Performance Monitor和SQL Server Profiler。

Performance Monitor可以监控系统的硬件性能,如CPU利用率、内存使用情况、磁盘IO等;SQL Server Profiler可以监控数据库的性能,如查询执行时间、锁定情况等。

第二步:识别慢查询在监控系统性能的基础上,我们还需要识别出哪些查询存在性能问题。

可以通过查询执行计划、系统视图和性能监视器等方式来判断哪些查询的执行时间较长或者占用较多的系统资源。

1. 使用查询执行计划:在SQL Server Management Studio中执行查询时,可以选择显示查询执行计划。

执行计划可以告诉我们查询的执行过程,包括使用了哪些索引、是否进行了表扫描等。

可以通过查看执行计划中的耗时最长的操作节点来判断性能瓶颈所在。

2. 使用系统视图:SQL Server中有一些系统视图,如sys.dm_exec_query_stats和sys.dm_exec_query_plan,可以查询有关查询的性能信息。

可以通过查找执行时间最长的查询语句,并分析其执行计划,判断性能瓶颈所在。

3. 使用性能监视器:可以通过性能监视器来监控数据库的性能指标,如平均响应时间、平均锁等待时间等。

可以根据这些指标判断哪些查询存在性能问题。

第三步:分析性能瓶颈在识别出慢查询之后,我们需要对慢查询进行分析,找出性能瓶颈所在。

ORACLE数据库变得非常慢解决方案一例

ORACLE数据库变得非常慢解决方案一例

ORACLE数据库变得非常慢解决方案一例最近在为一个项目做数据库优化,发现ORACLE数据库运行得特别慢,简直让人头大。

今天就来给大家分享一下我是如何一步步解决这个问题的,希望对你们有所帮助。

事情是这样的,那天老板突然过来,一脸焦虑地说:“小王,你看看这个数据库,查询速度怎么这么慢?客户都投诉了!”我二话不说,立刻开始分析原因。

我打开了数据库的监控工具,发现CPU和内存的使用率都很高,看来是数据库的压力确实很大。

然后,我开始查看慢查询日志,发现了很多执行时间很长的SQL语句。

这时,我意识到,问题的根源可能就在这些SQL语句上。

一、分析SQL语句1.对执行时间长的SQL语句进行优化。

我检查了这些SQL语句的写法,发现很多地方可以优化。

比如,有些地方使用了子查询,我尝试将其改为连接查询,以提高查询效率。

2.检查索引。

我发现有些表上没有合适的索引,导致查询速度变慢。

于是,我添加了合适的索引,以提高查询速度。

3.调整SQL语句的顺序。

有些SQL语句的执行顺序不当,导致查询速度变慢。

我调整了这些语句的顺序,使其更加合理。

二、调整数据库参数1.增加缓存。

我发现数据库的缓存设置比较低,导致查询时需要频繁读取磁盘。

我适当增加了缓存大小,以提高查询速度。

2.调整线程数。

我发现数据库的线程数设置较低,无法充分利用CPU资源。

我将线程数调整为合适的值,以提高数据库的处理能力。

3.优化数据库配置。

我对数据库的配置文件进行了调整,比如调整了日志文件的存储路径和大小,以及调整了数据库的备份策略等。

三、检查硬件资源1.检查CPU。

我查看了CPU的使用情况,发现CPU负载较高。

我建议公司采购更强大的CPU,以提高数据库的处理能力。

2.检查内存。

我发现内存的使用率也很高,于是建议公司增加内存容量。

3.检查磁盘。

我检查了磁盘的读写速度,发现磁盘的I/O性能较低。

我建议公司更换更快的磁盘,以提高数据库的读写速度。

四、定期维护1.定期清理数据库。

mysql优化实战案例优化:定位问题,解决方案,优化后性能分析【实战分析】

mysql优化实战案例优化:定位问题,解决方案,优化后性能分析【实战分析】

mysql优化实战案例优化:定位问题,解决方案,优化后性能分析【实战分析】在此分享一下我在开发过程中遇到的SQL优化问题,希望能对大家有所帮助,不足之处请多多指正。

关于SQL优化我们关注的有三个点,分别是1.如何定位待优化的SQL,2.如何分析SQL的执行效率,3.给出优化方案。

一、对于定位慢SQL,我们可以使用慢查询日志1.慢查询日志用于记录执行时间=设置的执行时间的SQL,MySQL默认关闭。

2.打开慢查询日志并设置慢查询时间查看慢查询日志打开状态通过show variables like #39;%query%#39;命令查看慢查询日志的配置。

long_query_time表示设置的慢查询时间,为10秒,表示SQL执行时间=10秒时,该条SQL会被记录到慢查询日志文件;slow_query_log 表示慢查询日志的打开状态,默认为OFF,表示关闭;slow_query_log_file表示慢查询日志的文件路径;通过set global slow_query_log=on;命令,打开慢查询日志,通过set global long_query_time = 1;设置慢查询时间为1秒,慢查询日志文件的路径,我们不动配置。

运行命令后,我们再次查看状态,如下图所示:更改配置需要注意的是,慢查询日志的时间其实已经更改了,需要先退出客户端,重新连一下服务器,我们才能看到修改后的值。

二、通过explain命令查看SQL执行效率1.首先是数据准备,我们向数据表中插入300万条数据,测试数据的生成和插入,我是通过python脚本实现的,下面我粘贴一下完整代码,大家可以参考一下#!/usr/bin/python#!coding=utf-8import pymysqlimport randomimport stringimport syshost=#39;127.0.0.1#39;port=3306user=#39;root#39;passwd=#39;123456#39;db=#39;demo#39;sql=#39;insert into user(id, name, sex, age) value (%s, %s, %s, %s)#39; insert_count=sys.argv[1]conn=pymysql.connect(host, user, passwd, db, port, charset=#39;utf8mb4#39;, cursorclass=pymysql.cursors.DictCursor)cur = conn.cursor()cur.execute(#39;delete from user#39;)for i in range(1, int(insert_count)):cur.execute(sql, [i, #39;#39;.join(random.sample(string.ascii_letters, 6)), random.randint(0, 1), random.randint(1, 160)])mit()cur.close()上述为完整的python脚步,大家可以根据实际情况调整,将其拷贝进文件,通过python file_name.py 200000, 这条命令执行批量插入的动作,200000表示向数据表写入199999条数据。

使用Oprofile定位my sql性能瓶颈

使用Oprofile定位my sql性能瓶颈

去锁后: procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---r b swpd free buff cache si so bi bo in cs us sy id wa 12 0 0 12269904 517080 2510360 0 0 0 31112 15868 201162 40 39 19 3 6 0 0 12269008 517080 2510880 0 0 0 29738 16125 201936 39 39 19 3 9 1 0 12267856 517088 2511132 0 0 0 35060 17513 204822 38 39 20 4 7 0 0 12266384 517088 2511652 0 0 0 31892 16309 198144 39 37 21 3 9 1 0 12265552 517088 2511912 0 0 0 29978 15788 198806 39 37 21 3
3
Oprofile简介
oprofile 是 Linux 平台上的一个功能强大的性能分析工具, 支 持两种采样(sampling)方式:基于事件的采样(event based) 和基于时间的采样(time based)。
她是一个系统层面的工具^-^
4
Oprofile简介
优点: 目前大部分2.6内核的发行版内置(这点是systemtap没法比的 ) 引入的overhead非常小 可以对linux kernel进行分析 非常适合做Benchmark用 简单易用(这点也是systemtap没法比的)
9
Case1
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---r b swpd free buff cache si so bi bo in cs us sy id wa 9 0 0 12337080 528028 2385012 0 0 0 31248 16407 283530 32 48 17 8 1 0 12335736 528028 2385012 0 0 0 28546 15752 281153 32 48 17 9 1 0 12335016 528028 2385532 0 0 0 29432 16542 276584 34 48 15 9 1 0 12333528 528040 2385520 0 0 0 27546 15021 291593 33 48 16 9 0 0 12332824 528040 2385780 0 0 0 28492 16094 279498 33 48 16 7 1 0 12331992 528040 2386300 0 0 0 26902 16305 277508 33 48 17 3 2 3 2 3 3

使用Profiling工具进行代码性能优化

使用Profiling工具进行代码性能优化

0. 文档说明 (3)1. 使用OProfile进行性能分析 (3)1.1 OProfile的简介 (3)1.1.1 使用OProfile的动机和约束 (3)1.1.2 使用OProfile的系统需求 (4)1.1.3 其他关于OProfile的可用资源 (5)1.1.4 安装OProfile (5)1.2 Oprofile概述 (6)1.2.1 开始 (6)1.2.2 工具小节 (6)1.3 控制Profiler (7)1.3.1 使用opcontrol (7)1.3.2 使用oprof_start (10)1.3.3 配置细节 (10)1.4 获得结果 (11)1.4.1 Profile Specification (11)1.4.2. 镜像与符号的结果汇总(使用opreport) (14)1.4.3 输出带标注的源码 (18)1.4.4 gprof兼容的输出 (20)1.4.5 档案管理 (20)1.5 理解profiling结果 (21)1.5.1 中断延迟的profiling (21)1.5.2 内核的profiling (22)1.5.3 解释callgraph的profiles (22)1.5.4 非精确的带标注的源码 (22)1.5.5 汇编函数 (24)1.6 使用OProfile的实际例子 (24)1.6.1 ctpl的性能分析 (24)1.7 OProfile的cons 与pros (29)1.7.1 OProfile的主要优点 (29)1.7.2 OProfile的主要缺点 (29)1.7.3 适合使用OProfile的场合 (30)1.8 OProfile的其他参考资料 (30)2. 使用Intel VTune TM进行性能分析 (30)2.1 Intel VTune TM简介 (30)2.1.1 VTune的功能与适用范围 (31)2.1.2 VTune的系统需求 (31)2.1.3 其他可用的VTune资源 (31)2.1.4 VTune的安装与部署 (31)2.2 VTune中的有关性能调优的名词与术语 (31)2.2.1 Data Collector (31)2.2.2 Project与Activity (31)2.2.3 Drilling Down (32)2.3 使用VTune收集与分析性能数据 (32)2.3.1 使用API收集数据 (32)2.3.2 远程收集数据 (32)2.3.3 使用采样 (32)2.3.4 使用callgraph分析 (32)2.3.5 静态模块分析 (32)2.3.6 查看带Profiling信息的源码 (32)2.3.7 使用Event Ratios (32)2.4 高级用法 (32)2.4.1 使用Tuning Assistant (32)2.4.2 合并activities (32)2.5 使用VTune进行性能分析的实际例子 (32)2.5.1 iknow的fbsmon模块64位升级 (32)2.5.2 使用VTune对ctpl进行性能分析 (32)2.6 VTune的cons与pros (32)2.6.1 VTune的主要优点 (33)2.6.2 VTune的主要缺点 (33)2.6.3 适合使用VTune的场合 (33)2.7 其他可以与VTune协同工作的工具 (33)2.7.1 Intel Thread Profiler (33)3. ANNEX (34)0. 文档说明本文的目标在于:a)详细描述两种主要的Profiling工具的用法。

mysql性能排查思路

mysql性能排查思路

mysql性能排查思路mysql性能瓶颈排查 top/free/vmstat/sar/mpstat查看mysqld进程的cpu消耗占⽐确认mysql进程的cpu消耗是%user, 还是sys%⾼确认是否是物理内存不够⽤了确认是否有swap产⽣top (%cpu load %MMEM)free -gtvmstat -S m 1 (procs io cpu)sar -u 1 (%user)sar -d 1如何优化硬件优化查看mysql线程状态 show [full] processlist长时间的Sending data从引擎层读取数据返回给server端长时间存在的原因:1 没有合适的索引查询效率低下2 读取⼤量数据读取缓慢3 系统负载⾼读取缓慢如何做:1 加上合适的索引2 改写sql3 增加LIMIT限制每次读取量4 检查&升级IO设备性能长时间等待MDL锁 (waiting for table metadata lock)原因:DDL被阻塞进⽽阻塞其他后续sqlDDL之前的sql长时间未结束如何做:1 提⾼每条sql的效率2 kill掉长时间运⾏的sql3 把DDL放在夜间低⾕时段4 采⽤pt-osc执⾏DDL长时间的sleep1. 占⽤连接数2. 消耗内存未释放3. 可能有⾏锁(甚⾄是表锁未释放)如何做:1 适当调低timeout2 主动kill超时不活跃连接3 定期检查锁、锁等待4 可以利⽤pt-kill⼯具其他状态Copy to tmp table [on disk]执⾏alter table修改表结构,需要⽣成临时表建议放在夜间低⾕进⾏,或者⽤pt-oscCreating tmp table常见于group by没有索引的情况需要拷贝数据到临时表[内存/磁盘上]执⾏计划中会出现Using temporary关键字建议创建合适的索引,消除临时表Creating sort index常见于order by没有索引的情况需要进⾏filesort排序执⾏计划中会出现Using filesort关键字建议创建排序索引其他排除⽅法use information_schema; SELECT * from innodb_lock_waits;show engine innodb status;测试环境调低long_query_time的值开启log_queries_not_using_indexes 分析慢⽇志。

MySQL实战记录之如何快速定位慢SQL

MySQL实战记录之如何快速定位慢SQL

MySQL实战记录之如何快速定位慢SQL⽬录开启慢查询⽇志系统变量修改配置⽂件设置全局变量分析慢查询⽇志mysqldumpslowpt-query-digest⽤法实战总结开启慢查询⽇志在项⽬中我们会经常遇到慢查询,当我们遇到慢查询的时候⼀般都要开启慢查询⽇志,并且分析慢查询⽇志,找到慢sql,然后⽤explain来分析系统变量MySQL和慢查询相关的系统变量如下参数含义slow_query_log是否启⽤慢查询⽇志, ON为启⽤,OFF为没有启⽤,默认为OFFlog_output⽇志输出位置,默认为FILE,即保存为⽂件,若设置为TABLE,则将⽇志记录到mysql.show_log表中,⽀持设置多种格式slow_query_log_file指定慢查询⽇志⽂件的路径和名字long_query_time执⾏时间超过该值才记录到慢查询⽇志,单位为秒,默认为10执⾏如下语句看是否启⽤慢查询⽇志,ON为启⽤,OFF为没有启⽤show variables like "%slow_query_log%"可以看到我的没有启⽤,可以通过如下两种⽅式开启慢查询修改配置⽂件修改配置⽂件my.ini,在[mysqld]段落中加⼊如下参数[mysqld]log_output='FILE,TABLE'slow_query_log='ON'long_query_time=0.001需要重启 MySQL 才可以⽣效,命令为 service mysqld restart设置全局变量我在命令⾏中执⾏如下2句打开慢查询⽇志,设置超时时间为0.001s,并且将⽇志记录到⽂件以及mysql.slow_log表中set global slow_query_log = on;set global log_output = 'FILE,TABLE';set global long_query_time = 0.001;想要永久⽣效得到配置⽂件中配置,否则数据库重启后,这些配置失效分析慢查询⽇志因为mysql慢查询⽇志相当于是⼀个流⽔账,并没有汇总统计的功能,所以我们需要⽤⼀些⼯具来分析⼀下mysqldumpslowmysql内置了mysqldumpslow这个⼯具来帮我们分析慢查询⽇志。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

去锁后: procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---r b swpd free buff cache si so bi bo in cs us sy id wa 12 0 0 12269904 517080 2510360 0 0 0 31112 15868 201162 40 39 19 3 6 0 0 12269008 517080 2510880 0 0 0 29738 16125 201936 39 39 19 3 9 1 0 12267856 517088 2511132 0 0 0 35060 17513 204822 38 39 20 4 7 0 0 12266384 517088 2511652 0 0 0 31892 16309 198144 39 37 21 3 9 1 0 12265552 517088 2511912 0 0 0 29978 15788 198806 39 37 21 3
14
Case2
“show innodb status” 引起的性能损耗问题 在5.1.23版本,每秒发起10次show innodb status请求
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 11241136 501948 2300332 0 0 0 1588 1082 694 3 1 96 0 0 0 0 11241336 501956 2300324 0 0 0 8 1047 686 3 1 97 0 0 0 0 11239672 501996 2301844 0 0 0 1352 1262 699 3 1 97 0 0 0 0 11239608 502004 2301836 0 0 0 14 1051 675 3 1 97 0 0 0 0 11239608 502012 2301828 0 0 0 8 1054 704 3 1 97 0
使用oprofile定位MySQL性能瓶颈
悟云(谢良)@淘宝性能 评测组
目录
Oprofile简介 Case1 Case2 Oprofile的局限性
2
Oprofile简介
摘自官网:
OProfile is a system-wide profiler for Linux systems, capable of profiling all running code at low overhead
11
Case1
这时再看下我们自已实现的add_sql_stat_info_to_cache代码中有: #ifdef HAVE_ATOMIC_BUILTINS (void) os_atomic_increment_ulint(&sql_stat_row->logic_read, count); #else rw_wrlock(&sql_stat_row->rw_locks[SQL_STAT_ROW_RWLOCK_LOGIC_READ]); sql_stat_row->logic_read += count; rw_unlock(&sql_stat_row->rw_locks[SQL_STAT_ROW_RWLOCK_LOGIC_READ]); #endif 这样类似的加锁操作还有很多,每当执行SQL,每当发生了逻辑读、物理读时都 会执行,都有可能有锁竞争
5
Oprofile系统工作流图
6
常用的命令
opcontrol --init 核模块 opcontrol --setup --no-vmlinux opcontrol --start opcontrol --dump opcontrol --shutdown opcontrol --reset opreport --long-filenames opreport image:filename -l opannotate image:filename -s 加载oprofile内
3
Oprofile简介
oprofile 是 Linux 平台上的一个功能强大的性能分析工具, 支 持两种采样(sampling)方式:基于事件的采样(event based) 和基于时间的采样(time based)。
她是一个系统层面的工具^-^
4
Oprofile简介
优点: 目前大部分2.6内核的发行版内置(这点是systemtap没法比的 ) 引入的overhead非常小 可以对linux kernel进行分析 非常适合做Benchmark用 简单易用(这点也是systemtap没法比的)
15
Case2
mpstat –P ALL
12时40分00秒 12时40分03秒 12时40分03秒 12时40分03秒 12时40分03秒 12时40分03秒 12时40分03秒 12时40分03秒 12时40分03秒 12时40分03秒 CPU %user %nice %system %iowait %irq %soft %idle intr/s all 3.17 0.00 0.67 0.00 0.00 0.00 96.17 1044.67 0 6.00 0.00 0.33 0.00 0.33 0.00 93.33 166.67 1 1.33 0.00 0.00 0.00 0.00 0.00 98.67 125.33 2 4.67 0.00 4.33 0.00 0.00 0.00 90.67 125.33 3 13.00 0.00 0.00 0.00 0.00 0.00 86.67 125.33 4 0.00 0.00 0.00 0.00 0.00 0.00 99.67 125.33 5 0.00 0.00 0.00 0.00 0.00 0.00 100.00 125.67 6 0.00 0.00 0.00 0.00 0.00 0.00 100.00 125.33 7 0.00 0.00 0.00 0.00 0.00 0.00 100.00 125.67
不采样内核
系统级别 模块级别 源码级别
Case1
背景:在测试淘宝内部开发的统计Mysql语句逻辑读、 物理读、执行次数的插件性能时。。。
mysql> show variables like 'innodb_sql%'; +----------------------------------+-------+ | Variable_name | Value | +----------------------------------+-------+ | innodb_sql_stat_cells_num | 10000 | | innodb_sql_stat_is_all_on | ON | | innodb_sql_stat_is_count_on | ON | | innodb_sql_stat_is_logic_read_on | ON | | innodb_sql_stat_is_low_read_on | ON | +----------------------------------+-------+
9
Case1
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---r b swpd free buff cache si so bi bo in cs us sy id wa 9 0 0 12337080 528028 2385012 0 0 0 31248 16407 283530 32 48 17 8 1 0 12335736 528028 2385012 0 0 0 28546 15752 281153 32 48 17 9 1 0 12335016 528028 2385532 0 0 0 29432 16542 276584 34 48 15 9 1 0 12333528 528040 2385520 0 0 0 27546 15021 291593 33 48 16 9 0 0 12332824 528040 2385780 0 0 0 28492 16094 279498 33 48 16 7 1 0 12331992 528040 2386300 0 0 0 26902 16305 277508 33 48 17 3 2 3 2 3 3
ቤተ መጻሕፍቲ ባይዱ10
Case1
我们用oprofile看下innodb内部到底怎么了:
samples % image name symbol name 783860 9.4705 ha_innodb_plugin.so.0.0.0 row_search_for_mysql 567066 6.8512 ha_innodb_plugin.so.0.0.0 buf_page_get_gen 559071 6.7547 ha_innodb_plugin.so.0.0.0 mutex_spin_wait 527874 6.3777 ha_innodb_plugin.so.0.0.0 add_sql_stat_info_to_cache 489548 5.9147 ha_innodb_plugin.so.0.0.0 row_vers_build_for_consistent_read 444967 5.3761 ha_innodb_plugin.so.0.0.0 cmp_dtuple_rec_with_match 386193 4.6660 ha_innodb_plugin.so.0.0.0 fold_sql(char const*, unsigned int) 368236 4.4490 ha_innodb_plugin.so.0.0.0 ut_delay 。。。。。。
相关文档
最新文档