MySQL存储原理: mysql的存储过程是函数经过编译并存储在数据库中的一段SQL语句集合,相当于一个函数编译执行的过程,只是函数不需要有返回值,直接存储编译后的数据
一、数据库的基本要素(ACID): 1.原子性:事务操作是不可分割的,要么完成,要么不执行 2.一致性:多个事务并行执行,执行结果必须按照某一顺序执行相同 3.隔离性:多个事务执行互相不干扰,执行中结果对其他事务必须透明 4.持久性:执行成功的事务,对数据库改变必须是永久的,不能应为某些原因(掉电)消失
二、数据库事物隔离级别: 读未提交(read-uncommitted) 读提交(read-committed) 可重复读(repeatable-read) 串行化(serializable)
三、数据库设计三范式: 1NF:属性不可再分,即字段不能再分(最基本的数据单元) 2NF:满足1NF,且非主键字段必须完全依赖主键 3NF:满足2NF,且非主键字段必须直接依赖主键,不能间接依赖
四、事物并发问题: 1.脏读:事务A读取了事务B更新的数据,当B事务回滚,A事务读取到的数据都为脏数据 2.不可重复读:事务A多次读取同一数据,事务B在事务A多次读取中修改了数据,导致事务A读取的数据不一致 3.幻读:事务A在针对表中数据进行修改,涉及表中全部数据行,同时事务B也修改了表中的某一行数据(插入一行新数据),那么事务A就会发现表中还有没有修改的数据行,产生了幻读(读提交可解决)