MySQL优化之如何了解SQL的执行频率_Mysql

 show [session|global] status 可以根据需要加上参数“ session ”或者“ global ”来显示 session 级(当前连接)的统计结果和 global 级(自数据库上次启动至今)的统计结果。如果不写,默认使用参数是“ session ”。

    Com_xxx 表示每个 xxx 语句执行的次数,我们通常比较关心的是以下几个统计参数 :

•Com_select :执行 select 操作的次数,一次查询只累加 1 。
•Com_insert :执行 INSERT 操作的次数,对于批量插入的 INSERT 操作,只累加一次。
•Com_update :执行 UPDATE 操作的次数。
•Com_delete :执行 DELETE 操作的次数。

    知道了这些信息就方便我们确定我们到底需要什么样的存储引擎了,一般来说update较多的时候 Innodb 引擎效率会稍微高一些!

    上面这些参数对于所有存储引擎的表操作都会进行累计。下面这几个参数只是针对 InnoDB 存储引擎的,累 加的算法也略有不同:

•Innodb_rows_read : select 查询返回的行数。
•Innodb_rows_inserted :执行 INSERT 操作插入的行数。
•Innodb_rows_updated :执行 UPDATE 操作更新的行数。
•Innodb_rows_deleted :执行 DELETE 操作删除的行数。

    通过以上几个参数,可以很容易地了解当前数据库的应用是以插入更新为主还是以查询操作为主,以及各种类型的 SQL 大致的执行比例是多少。对于更新操作的计数,是对执行次数的计数,不论提交还是回滚都会进行累加。
    对于事务型的应用,通过 Com_commit 和 Com_rollback 可 以了解事务提交和回滚的情况,对于回滚操作非常频繁的数据库,可能意味着应用编写存在问题。
    此外,以下几个参数便于我们了解数据库的基本情况:

•Connections : 试图连接 MySQL 服务器的次数。
•Uptime :服务器工作时间。
•Slow_queries : 慢查询的次数。

时间: 2024-11-03 11:19:53

MySQL优化之如何了解SQL的执行频率_Mysql的相关文章

MySQL优化之如何查找SQL效率低的原因_Mysql

查询到效率低的 SQL 语句 后,可以通过 EXPLAIN 或者 DESC 命令获取 MySQL 如何执行 SELECT 语句的信息,包括在 SELECT 语句执行过程中表如何连接和连接的顺序,比如我们想计算 2006 年所有公司的销售额,需要关联 sales 表和 company 表,并且对 profit 字段做求和( sum )操作,相应 SQL 的执行计划如下: mysql> explain select sum(profit) from sales a,company b where a

根据mysql慢日志监控SQL语句执行效率_Mysql

根据mysql慢日志监控SQL语句执行效率 启用MySQL的log-slow-queries(慢查询记录). 在Linux环境下先要找到my.cnf文件(一般在/etc/mysql/),然后可能会发现该文件修改后无法保存,原因是你没有相应的权限,可以从属性中看到该文件的所有者是root,这时要先以root的身份打开它: sudo nautilus /etc/mysql 接着再打开my.cnf文件然后找到[mysqld]标签在下面加上: log-slow-queries=/path/slow.lo

了解SQL的执行频率的方法

MySQL 客户端连接成功后,通过 show [session|global]status 命令 可以提供服务器状态信息,也可以在操作系统上使用 mysqladmin extended-status 命令获得这些消息. show [sessionglobal] status 可以根据需要加上参数" session "或者" global "来显示 session 级(当前连接)的统计结果和 global 级(自数据库上次启动至今)的统计结果.如果不写,默认使用参数是

如何了解SQL的执行频率

MySQL 客户端连接成功后,通过 show [session|global]status 命令 可以提供服务器状态信息,也可以在操作系统上使用 mysqladmin extended-status 命令获得这些消息. show [sessionglobal] status 可以根据需要加上参数" session "或者" global "来显示 session 级(当前连接)的统计结果和 global 级(自数据库上次启动至今)的统计结果.如果不写,默认使用参数是

mysql优化limit查询语句的5个方法_Mysql

mysql的分页比较简单,只需要limit offset,length就可以获取数据了,但是当offset和length比较大的时候,mysql明显性能下降 1.子查询优化法 先找出第一条数据,然后大于等于这条数据的id就是要获取的数据 缺点:数据必须是连续的,可以说不能有where条件,where条件会筛选数据,导致数据失去连续性,具体方法请看下面的查询实例: 复制代码 代码如下: mysql> set profiling=1; Query OK, 0 rows affected (0.00

mysql优化连接数防止访问量过高的方法_Mysql

很多开发人员都会遇见"MySQL: ERROR 1040: Too many connections"的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力:另一种原因就是MySQL配置文件中max_connections值过小. 首先,我们来查看mysql的最大连接数: mysql> show variables like '%max_connections%'; +-----------------+-------+ |

MYSQL SET类型字段的SQL操作知识介绍_Mysql

复制代码 代码如下: <em>`mark` set('index','best','hot')</em>  用的人少,懂的人也少,找了很久,总算凑齐了一套知识点看上面的结构,MYSQL不傻,会存index吗,不会,存的是数字SET字段是利用二进制数字来一一对应你设置的值,比如index,排在第0位,那么2的零次方等于1 复制代码 代码如下: update from table SET mark=1  复制代码 代码如下: update from table SET mark='in

后端系统性能优化(三) sql优化

昨天我为大家介绍了如何去发现坏代码,如何优雅的去实现一个应用内的监控程序.当然发现了坏代码之后,我们还是要想办法来改掉它,也许它会很顽固.今天说说性能优化的一个非常重要的部分:sql的优化 今天要说的不是怎么来写优秀的,性能好的sql,这些DBA们会比我更加专业.在我们公司,凡是DBA能优化的sql,DBA都在内部消化了,需要反馈给我们的,说明他们可能也束手无策.也是我们该出手的时候了. insert,update这类型的sql,性能一般不会太慢,我把这其中可能出现的问题糅合在一个例子中,组成这

PLSQL_监控有些SQL的执行次数和频率

原文:PLSQL_监控有些SQL的执行次数和频率 2014-12-25 Created By 鲍新建 一.摘要 在ORACLE数据库应用调优中,一个SQL的执行次数/频率也是常常需要关注的,因为某个SQL执行太频繁,要么是由于应用设计有缺陷,需要在业务逻辑上做出优化处理,要么是业务特殊性所导致. 如果执行频繁的SQL,往往容易遭遇一些并发性的问题. 那么如何查看ORACLE数据库某个SQL的执行频率/次数,潇湘隐者同学整理如下,借花献佛了 :)   方法1: 通过查询V$SQLAREA或V$SQ