冲天香阵透长安,满城尽带黄金甲。这篇文章主要讲述MySQL教程mysql面试题总结_上相关的知识,希望能为你提供帮助。
什么是mysql?MySQL 是一种关系型数据库,在java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何人都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进行修改。MySQL的默认端口号是3306。
MySQL数据库入门教程B站传送门:
??https://www.bilibili.com/video/BV1fx411X7BD??
课程简介:
本套是MySQL数据库视频教程是动力节点教学总监杜老师讲述,其中详细讲解了MySQL的相关知识,包括MySQL概述,MySQL应用环境,MySQL系统特性,MySQL初学基础,MySQL管理工具,如何安装MySQL及MySQL新特性,通过观看本套Java视频教程就可掌握MySQL全套知识。
什么是事务?事务是逻辑上的一组操作,要么都执行,要么都不执行。
事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。
事物的四大特性(ACID):
并发事务带来哪些问题?在典型的应用程序中,多个事务并发运行,经常会操作相同的数据来完成各自的任务(多个用户对统一数据进行操作)。并发虽然是必须的,但可能会导致以下的问题。
不可重复度和幻读区别:不可重复读的重点是修改,幻读的重点在于新增或者删除。
例1(同样的条件, 你读取过的数据, 再次读取出来发现值不一样了 ):事务1中的A先生读取自己的工资为
1000的操作还没完成,事务2中的B先生就修改了A的工资为2000,导
致A再读自己的工资时工资变为
2000;这就是不可重复读。
例2(同样的条件, 第1次和第2次读出来的记录数不一样 ):假某工资单表中工资大于3000的有4人,事务1读取了所有工资大于3000的人,共查到4条记录,这时事务2 又插入了一条工资大于3000的记录,事务1再次读取时查到的记录就变为了5条,这样就导致了幻读。
事务隔离级别有哪些?MySQL的默认隔离级别是?SQL 标准定义了四个隔离级别:
MySQL InnoDB 存储引擎的默认支持的隔离级别是 REPEATABLE-READ(可重读)。我们可以通过SELECT @@tx_isolation;
命令来查看
mysql>
SELECT @@tx_isolation;
+-----------------+
| @@tx_isolation
|
+-----------------+
| REPEATABLE-READ |
+-----------------+
这里需要注意的是:与 SQL 标准不同的地方在于InnoDB 存储引擎在 REPEATABLE-READ(可重读)事务隔离级别下使用的是Next-Key Lock 锁算法,因此可以避免幻读的产生,这与其他数据库系统(如 SQL Server)是不同的。所以说InnoDB 存储引擎的默认支持的隔离级别是 REPEATABLE-READ(可重读) 已经可以完全保证事务的隔离性要求,即达到了 SQL标准的SERIALIZABLE(可串行化)隔离级别。
因为隔离级别越低,事务请求的锁越少,所以大部分数据库系统的隔离级别都是READ-COMMITTED(读取提交内容):,但是你要知道的是InnoDB 存储引擎默认使用 REPEATABLE-READ(可重读)并不会有任何性能损失。
InnoDB 存储引擎在 分布式事务 的情况下一般会用到SERIALIZABLE(可串行化)隔离级别。
未完待续。。。。。。
【MySQL教程mysql面试题总结_上】
推荐阅读
- 动力节点Spring框架学习笔记-王鹤IOC控制反转
- CMMS和ERP之间有什么区别()
- C#中的类和结构之间有什么区别()
- &&和;之间的区别-Linux中的链接运算符
- C语言和Objective-C有什么区别()
- C语言和C#之间有什么区别()
- Java中抽象类和接口之间的区别
- C#中抽象类和接口之间的区别
- 算法-差异数组(O(1)时间范围更新查询)