Mysql常见知识点

Mysql是最常用的数据库了。

1、什么是关系型数据库?

关系型数据库(RDB,Relational Database)就是一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系(一对一、一对多、多对多)。

2、Mysql 的内连接、左连接、右连接有什么区别?

Inner join 内连接,在两张表进行连接查询时,只保留两张表中完全匹配的结果集

left join 在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录。

right join 在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录。

3、InnoDB与MyISAM的区别?

innodb是其引擎的名称。InnoDB支持许多MyISAM不支持的功能,比如行级锁、事务、外键、MVCC等、数据库异常崩溃后的安全恢复。

4、Mysql索引的原理?

Mysql使用B+树作为索引,B+树非叶子节点上是不存储数据的,仅存储键值。

5、读写分离是什么意思?

读写分离主要是为了将对数据库的读写操作分散到不同的数据库节点上。 这样的话,就能够小幅提升写性能,大幅提升读性能。

读写分离基于主从复制,MySQL 主从复制是依赖于 binlog。用一些组件可以直接实现读写分离。

6、Navicat

Navicat是数据库管理工具,远程连接上后直接操作库表,不用使用命令行。

7、Mysql的主键和外键有什么区别?

主键是这张表的唯一标识,非空且不允许重复。外键是其他表的唯一标识。一个表可以有多个外键。

8、mybatis是什么?

MyBatis ORM 框架是一个持久层框架,用于简化数据库的操作。它通过 XML 或注解的方式将 Java 的接口方法和 SQL 语句关联起来,完成数据的持久化操作。通过java中操作对象,mybatis会解析为对应的sql语句,查到具体的内容。

9、什么是事务

事务是逻辑上的一组操作,要么都执行,要么都不执行。

10、Mysql的4种事务隔离级别。

读未提交(read-uncommitted)
不可重复读(read-committed)
可重复读(repeatable-read)
串行化(serializable)

mysql默认的事务隔离级别为repeatable-read,可重复读。

设计上,我们业务基本上会避免使用事物。

1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据

2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。

3、幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。

4、小结:不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表。

11、事务的四大特性。

一致性、原子性、隔离性、持久性

  • 原子性Atomicity):事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;
  • 一致性Consistency):执行事务前后,数据保持一致,例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的;
  • 隔离性Isolation):并发访问数据库时,一个用户的事
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值