事务的4个性质:①A原子性,要么做要么不做;②C一致性,我跟你总共100元怎么转账总和还是100元;③I隔离性,一个对一个文件写,另一个不能同时写;④D持久性,写入数据库持久。
脏读:A更新,B(在A未提交之前)读,A提交。
不可重复读:A查一条记录,B更新这条记录,A再查。
幻读:A查询所有,B插入一条,A再查询所有。
事务的隔离级别:①Read Uncommitted都未解决;②Read Committed(SQL Server、Oracle)解决脏读;③Repeatable Read(MySQL)解决脏读不可重复读;④Serializable解决脏读不可重复读幻读。
第一范式:一列中不能有多个值。
第二范式:不能有局部依赖。
第三范式:不能有传递依赖。
MySQL的几个索引:MyISAM,默认,快速查询和插入,但不支持事务和外键;InnoDB,用的最多,支持事务和外键;ndb,高冗余,低并发,效率低。等等。
哈希索引与B+树索引:B+树索引适合模糊查询,支持范围查询,有序;哈希索引查找效率高,仅适合等值查询,不能范围查询。(注意数据结构)
几种锁