MySQL
# 1.数据库的三范式是什么
第⼀范式:强调的是列的原⼦性,即数据库表的每⼀列都是不可分割的原⼦数据项。
第⼆范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字⼀部分的属性。
第三范式:任何⾮主属性不依赖于其它⾮主属性
# 2.说⼀下ACID 是什么
Atomicity(原⼦性):⼀个事务 (transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。事务在执⾏过程中发⽣错误,会被恢复(Rollback)到事务开始前的 状态,就像这个事务从来没有执⾏过⼀样。即,事务不可分割、 不可约简。
Consistency(⼀致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写⼊的资料必须完全符合所有的预设约束、触发器、级联回滚等。
lsolation(隔离性):数据库允许多个并发事务同时对其数据进⾏读写和修改的能⼒,隔离性可以防⽌多个事务并发执⾏时由于交叉执⾏⽽导致数据的不⼀致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交 (read committed)、可重复读 (repeatable read) 和串⾏化(Serializable)。
Durability(持久性):事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
# 3.mysql
索引是怎么实现的索引是满⾜某种特定查找算法的数据结构,⽽这些数据结构会以某种⽅式指向数据,从币实现⾼效查找数据。
具体来说 MySQL中的索引,不同的数据引擎实现有所不同,但⽬前主流的数据库引擎的索引都是 B+树实现的,B+树的搜索效率,可以到达⼆分法的性能,找到数据区域之后就找到了完整的数据结构了,所有索引的性能也是更好的。
# 4 如何实现分库分表 动态数据源+读写分离+
上次更新: 2023/08/12, 20:54:07