0
点赞
收藏
分享

微信扫一扫

【Git教程】(三)提交详解 —— add、commit、status、stach命令的说明,提交散列值与历史,多次提交及忽略 ~

Greatiga 2024-02-28 阅读 14

1.CHAR和VARCHAR有什么区别

(1)float和double的区别是什么

2.什么是数据库设计的三大范式

3.说一下索引的分类

1. 从物理结构上分

2. 从应用上划分

(1)说一下什么是索引

(2)索引的数据结构

(3)索引失效的几种情况

3.索引的优缺点

4.索引的数据结构?

5.Hash 和 B+ 树索引的区别?

Hash

B+ Tree

6.如何获取当前数据库版本

7.说一下ACID是什么

8.mysql的内连接、左连接、右连接有什么区别

9.说一下数据库的事务隔离

事务的隔离性

脏读:指在一个事务处理过程中读到了另一个未提交的事务中的数据。

不可重复读:指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据,这是 由于在查询间隔,被另外一个事务修改并提交了。

幻读:一个事务在前后两次查询同一个范围时,后一次查询看到了前一次查询没有看到的数据。

事务的隔离级别

Read uncommitted (读未提交):最低级别,以上问题均无法解决。

Read committed (读已提交):读已提交,可避免脏读情况发生。

Repeatable Read(可重复读):确保事务可以多次从一个字段中读取相同的值,在此事务持续 期间,禁止其他事务对此字段的更新,可以避免脏读和不可重复读,仍会出现幻读问题。 Serializable (串行化):最严格的事务隔离级别,要求所有事务被串行执行,不能并发执行,可 避免脏读、不可重复读、幻读情况的发生。

10.说一下mysql常用的引擎

1. InnoDB:提供了对数据库ACID事务的支持,提供了行级锁和外键的约束。他会在内存中建立缓冲 池,用于缓冲数据和索引。启动比较慢,不会保存表的行数,所以在查询行数的时候他需要扫描全 表得出行数。

2. MyISAM:mysql的默认引擎,不支持事务、行级锁和外键,支持表锁。因此插入和更新操作,需 要锁定这个表,效率会低一点。不过它保存了表的行数,所以在查询行数时不需要扫描全表。 3. 查询操作多且不需要事务支持的优先用MyISAM,写操作多的且需要事务支持的有限用InnoDB。

(1)说以下mysql的行锁和表锁

InnoDB支持表锁和行锁,且默认为行锁;而MyISAM只支持表锁。 表锁:开销小,加锁快,不会出现死锁。锁的粒度大,发生锁冲突的概率最高,并发量最低。 行锁:开销大,加锁慢,会出现死锁。锁的粒度小,发生锁冲突的概率小,并发度最高。

(2)说一下乐观锁和悲观锁

乐观锁:每次去拿数据的时候都认为别人不会修改,所以不会上锁,但在提交更新的时候会判断以下在 此期间别人有没有去更新这个数据。 悲观锁:每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿数 据就会阻止,直到这个锁被释放。

11.如何做mysql的性能优化

举报

相关推荐

0 条评论