
Mysql经典面试题汇总
1.ACID 是什么?
答: mysql的ACID是指事务的 原子性,一致性,隔离性,持久性。 其中原子性是基于
Redo/undo log机制来实现的, Redo log 记录的是事务更新后的记录值,undo log 记录的是
事务更新后的记录,更新失败后,就可以根据undo log来进行回滚。
原子性: 一个事务必须视为一个不可分割的最小工作单元,整个事务里的操作要么全
部执行成功,要么全部失败。
一致性: 事务总是从一个一致性状态转换到另一个一致性状态。
隔离性: 一个事务所做的修改,在最终提交之前,其他事务是不可见的。
持久性: 事务里的所有操作最终会写入到数据库里。
2. mysql的索引类型包含哪几种?
1) fulltext 索引
适用于大文件text类型以及大小超过text类型的字段。
2) NORMAL普通索引
使用经常使用的字段或者当关联表的一些字段。
3) UNIQUE 唯一性索引
当有多个字段一起表示唯一时,可以使用唯一性索引进行约束,比如用户表里的, 用户
名和账号需要唯一并且不为空,那么就将 这2个字段设置一个唯一性的索引。
需要注意的是,联合字段做唯一性索引时,做为索引的字段必须为非空,否则会出现唯一
性索引失效的情况,例如a、b、c三个字段联合做唯一性索引,c允许为空,当出现如下情况
时,mysql也是允许的,当c允许为null时联合的唯一性索引失效。
abc
21null
21null
3. mysql的explain关键字用法?
一般用于在查询前添加explain,用于解释查询出来的语句包含的信息。