MySQL学习中的的疑问

敬爱的孙先生:

我在MySQL的学习中遇到的问题整理如下:

问题0:

用start transaction开启一个事务时需要设置autocommit=0吗?

答:不需要。autocommit=0   意思是不提交dml操作,其实就是开启事务。

问题1:

Repeatable read和Read Committed的区别是什么?

如何运用?

回答:rc是不可重复读  rr是可重复读 ;

rc多次执行一个sql,结果会不一样,rr会在结果的范围内有幻影行出现

RC解决了事务的脏读,脏读是读取到了未提交的脏数据。

RR解决了事务的不可重复读,不可重复读是第一次读过的记录被更改,再也读取不到。

RR理论上是没解决幻读的,innodb导入MVCC机制,解决了幻读问题。

所以,mysql rr的事务隔离级别才能作为默认事务隔离级别


问题2:

autocommit和Repeatable Committed的效果是一样的吗?

如何运用这两个变量?

问题3:

我在MySQL中set autocommit=0后,如果我的隔离级别是Read Committed

那我所做的DML操作还会自动提交吗?

答案:不会自动提交

[email protected] [sy]> select @@tx_isolation;

+----------------+

| @@tx_isolation |

+----------------+

| READ-COMMITTED |

+----------------+

1 row in set (0.00 sec)

[email protected] [sy]> set autocommit=0;

Query OK, 0 rows affected (0.00 sec)

[email protected] [sy]> select * from t3;

+------+------+

| id   | name |

+------+------+

|    1 | sy   |

|    2 | ll   |

+------+------+

2 rows in set (0.00 sec)

[email protected] [sy]> insert into t3 values(3,‘aa‘);

Query OK, 1 row affected (0.00 sec)

另外一个session

[email protected] [sy]>   select * from t3;

+------+------+

| id   | name |

+------+------+

|    1 | sy   |

|    2 | ll   |

+------+------+

2 rows in set (0.00 sec)



时间: 2024-10-14 01:50:42

MySQL学习中的的疑问的相关文章

MySQL学习14:操作数据表中的记录(二)

四查询记录 MySQL数据库中对于数据表中的记录最常用的就是记录的查询,操作数据表中的记录大都是记录的查询.查找 记录的语法结构为: SELECT select_expr [,select_expr ...] [ FROM table_refereneces [WHERE where_condition] [GROUP BY {col_name | position } [ASC | DESC],...] [HAVING where_condition] [ORDER BY {col_name

MySQL学习笔记-操作数据表中的记录

MySQL学习笔记-操作数据表中的记录 1.插入记录 INSERT INSERT [INTO] tbl_name [(col_name,...)] {VAULES|VALUE} ({expr|DEFAULT},...),(...),... 例,插入单条记录: mysql> USE testDatabase changed mysql> CREATE TABLE users(    -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,   

MySQL学习13:操作数据表中的记录(一)

操作MySQL数据库中的数据表的记录包括:记录的插入.记录的修改.记录的删除和记录的查询.简单来说.就 是数据表中的记录的增删改查. 一插入记录 MySQL数据库中的数据表的记录的插入包括三种形式,在前面我们操作数据表的时候就已经使用过记录的插入. 那只是我们最常使用的一种方式而已,接下来我们来看看记录的三种插入方式: (1)INSERT命令 MySQL数据库中的数据表中插入记录的第一种语法格式,也是最常用的一种语法格式为: INSERT [INTO] table_name [(col_name

Java学习总结(十八)——MySQL数据库(4)MySQL数据库中的视图,函数,存储过程中常见循环

一.MySQL存储过程中常见的循环1.while循环:WHILE.....DO.....END WHILE例1:创建存储过程(求1+2+.......+num的和):创建成功,进行调用:显示结果:2.REPEAT循环: REPEAT.........UNTLL END REPEAT例2:创建存储过程:创建完成,调用存储过程:显示结果:3.LOOP循环:LOOP END LOOP 例3:创建存储过程:创建成功,调用存储过程:显示结果:二.MySQL中的视图1.概念:有结构(有行有列),但没有结果(

MySQL数据库中的算术运算符

MySQL数据库中的算数运算符 MySQL数据库中的算术运算符 一.运算符的概述: 运算符在MySQL数据库中也是很重要的知识体,在执行sql语句的时候这个运算符对操作数据帮助很大.其中运算符的运用可以帮助你减省大量的时间,操作起来也比较灵活. 二.运算符 运算符主要包括"算数运算符"."比较运算符"."罗运算符"."位运算符"四大类,下面我们就一次学习一下. 1.算术运算符 算术运算符在sql语句的时候经常使用,例如对表的字

我的MYSQL学习心得(八)

我的MYSQL学习心得(八) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL学习心得(五) 我的MYSQL学习心得(六) 我的MYSQL学习心得(七) 这一篇<我的MYSQL学习心得(七)>将会讲解MYSQL的插入.更新和删除语句 同样的,只会讲解跟SQLSERVER不同的地方 插入 将多行查询结果插入到表中 语法 INSERT INTO table_name1(column_list1) SELECT (

我的MYSQL学习心得(一)

我的MYSQL学习心得(一) 使用MYSQL有一段时间了,由于公司使用SQLSERVER和MYSQL,而且服务器数量和数据库数量都比较多 管理起来比较吃力,在学习MYSQL期间我一直跟SQLSERVER进行对比 第一期主要是学习MYSQL的基本语法,陆续还有第二.第三.第四期,大家敬请期待o(∩_∩)o 语法的差异 我这里主要说语法的不同 1.默认约束 区别:mysql里面DEFAULT关键字后面是不用加括号的 --sqlserver CREATE TABLE emp ( id INT DEFA

MySql学习笔记(一)之DQL常用查询

MySql学习笔记(一)之DQL常用查询 前言:mysql是中小型的数据库软件,SQL语言分为DDL,DCL,DML,DQL四种,在这里重点讲解DQL的单表查询. 正文:在学习mysql单表查询之前,我们先做一些准备工作. 需要安装的软件如下: 1.mysql,版本可以选择5.1或者5.5,安装过程可以参考博客:http://www.cnblogs.com/ixan/p/7341637.html 2.mysql图形化管理软件:Navicate,sqlyog(二选一,推荐使用sqlyog). 本文

MySQL学习笔记-自定义函数

MySQL学习笔记-自定义函数 1.自定义函数简介 自定义函数:用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同 自定义函数的两个必要条件:(1)参数  (2)返回值 自定义函数: 创建自定义函数 CREATE FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL} routine_body 关于函数体: 1.函数体可以由合法的SQL语句构成: 2.函数体可以是