【MySQL技术内幕】7.4-隐式提交的SQL语句和事务操作统计

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【MySQL技术内幕】7.4-隐式提交的SQL语句和事务操作统计

1.隐式提交SQL语句

以下这些SQL语句会产生一个隐式的提交操作,即执行完这些语句后,会有一个隐式的 COMMIT操作

  • DDL语句: ALTER DATABASEUPGRADE DATA DIRECTORY NAME,ALTER EVENT, ALTER PROCEDURE, ALTER TABLE, ALTER VIEW,CREATE DATABASE, CREATE EVENT, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE TRIGGER, CREATE VIEW,DROP DATABASE, DROP EVENT, DROP INDEX, DROP PROCEDURE,DROP TABLE, DROP TRIGGER, DROP VIEW, RENAME TABLE,TRUNCATE TABLE。
  • 用来隐式地修改 MySQL架构的操作: CREATE USER、 DROP USER、 GRANT 、RENAME USER、 REVOKE、 SET PASSWORD。
  • 管理语句: ANALYZE TABLE、 CACHE INDEX、 CHECK TABLE、 LOAD INDEX  INTO CACHE、 OPTIMIZE TABLE、 REPAIR TABLE。

Microsoft SQL Server的数据库管理员或开发人员往往忽视对于DDL语句的隐式提交操作,因为在 Microsoft SQL Server数据库中,即使是DDL也是可以回滚的。这和 InnoDB存储引擎、 Oracle这些数据库完全不同另外需要注意的是, TRUNCATE TABLE语句是DDL,因此虽然和对整张表执行。

另外需要注意的是, TRUNCATE TABLE语句是DDL,因此虽然和对整张表执行DELETE的结果是一样的,但它是不能被回滚的(这又是和 Microsoft SQL Server数据不同的地方)。

2.事务操作的统计

由于 InnoDB存储引擎是支持事务的,因此 InnoDB存储引擎的应用需要在考虑每秒请求数(Question Per Second,QPS)的同时,应该关注每秒事务处理的能力(Transaction Per Second,TPS)。

计算TPS的方法是(com_commit+com_rollback)/time。但是利用这种方法进行计算的前提是:所有的事务必须都是显式提交的,如果存在隐式地提交和回滚(默认auto_commit=1),不会计算到 com_commit和 com_rollback变量中。如:

mysql> show global status like 'com_commit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_commit    | 2     |
+---------------+-------+
1 row in set (0.56 sec)复制代码

MySQL数据库中另外还有两个参数handler_commit和 handler_rollback用于事务的统计操作。但是我注意到这两个参数在MySQL5.1中可以很好地用来统计InnoDB存储引擎显式和隐式的事务提交操作,但是在 InnoDB Plugin中这两个参数的表现有些“怪异”,并不能很好地统计事务的次数。所以,如果用户的程序都是显式控制事务的提交和回滚,那么可以通过com_commit和com_rollback进行统计。如果不是,那么情况就显得有些复杂。



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5天前
|
存储 关系型数据库 MySQL
mysql 事务基本介绍
mysql 事务基本介绍
|
1天前
|
SQL 关系型数据库 MySQL
探索MySQL数学宝库:常用数学函数的秘密操作
探索MySQL数学宝库:常用数学函数的秘密操作
6 0
|
1天前
|
SQL 关系型数据库 MySQL
sql连接mysql数据库
要使用SQL来连接MySQL数据库,你实际上需要使用一种编程语言(如Python、Java、PHP等)配合相应的数据库驱动或库。下面,我将为你提供几个常见编程语言的示例,说明如何连接到MySQL数据库
|
1天前
|
SQL 安全 关系型数据库
sql数据库技术
SQL(Structured Query Language,结构化查询语言)数据库技术涉及多个方面,包括其定义、功能、应用以及查询结构等。以下是对这些方面的详细解释: 一、SQL数据库定义与功能
|
1天前
|
SQL 关系型数据库 MySQL
MySql基础三之【单表查询进阶操作】
MySql基础三之【单表查询进阶操作】
|
1天前
|
SQL Oracle 关系型数据库
MySql基础一之【了解MySql与DBeaver操作MySql】
MySql基础一之【了解MySql与DBeaver操作MySql】
|
2天前
|
存储 关系型数据库 MySQL
【MySQL】表的操作
【MySQL】表的操作
|
2天前
|
关系型数据库 MySQL 数据库连接
【MySQL】库的操作
【MySQL】库的操作
|
6天前
|
SQL 关系型数据库 MySQL
Python 操作 MySQL 数据库
Python 操作 MySQL 数据库
21 0
|
8天前
|
算法 关系型数据库 MySQL
MySQL (索引 & 事务)
MySQL (索引 & 事务)
27 3