java面试题答案——MySQL

MySQL

164. 数据库的三范式是什么?
    第一范式:表中的每个字段都不可分,具有原子性。
    第二范式:满足第一范式,每个表只能表示一个事物,具有唯一性,所有的非主属性完全依赖每个主属性。
    第三范式:满足第一范式,每个非主属性要直接依赖于主属性,不能传递依赖,每个非主属性之间没有依赖关系。
    
    参考:https://www.cnblogs.com/hezhiyao/p/7407468.html
    https://www.cnblogs.com/knowledgesea/p/3667395.html

165. 一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 ID 是几?
    假若不重启数据库,ID是8;重启数据库之后,ID为6.
    
    参考:https://blog.csdn.net/xzp_12345/article/details/79458586

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

167. 说一下 ACID 是什么?
    原子性:要么全部执行,要么全部都不执行。
    一致性:事务执行完成时,所有的数据在操作前后都是一致的状态。
    隔离性:并发事务的操作须与其他并发事务的操作保持隔离。
    持久性:事务完成后,对系统的影响是永久的,即便是系统故障也要一直保持。
    
    参考:https://blog.csdn.net/chen45682kang/article/details/81272769

168. Char 和 VarChar 的区别是什么?
    i.Char的长度是固定的,VarChar的长度是可变的,比如,存储字符串'abc',char(10)存储字符的话,会占10个字节(有7个空字符);VarChar(10)会占3个字节,10个字节是最大值
    ii.Char的效率比VarChar稍高。
    iii.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。 
    
    何时该用CHAR,何时该用varchar2? 
    
    CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系. 
    
    VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的‘以空间换效率’。
    
    VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用CHAR代替VARCHAR2会更好一些。


169. Float 和 Double 的区别是什么?

170. MySQL 的内连接、左连接、右连接有什么区别?
    内连接:inner join,(inner可以省略),两表的交集部分;
    左(外)连接:left outer join,(outer可省略),左表的全部数据显示,右表只显示符合条件的部分,右表没有记录的地方显示null;
    右(外)连接:right outer join,(outer可省略),右表的全部数据显示,左表只显示符合条件的部分,左表没有记录的地方显示null;
    
171. MySQL索引是怎么实现的?

172. 怎么验证 MySQL的索引是否满足需求?

173. 说一下数据库的事务隔离?
    Spring事务的本质是数据库事务,数据库事务的本质是数据库锁。
    数据库的事务隔离分为四种级别。
    read_uncommitted:0,导致脏读,不可重复读,幻读
    read_committed:1,避免脏读,允许不可重复读和幻读
    repeatable_read:2,避免脏读,不可重复读,允许幻读
    serializable:3,串行化读,避免了脏读,幻读和不可重复读,事务只能一个一个执行,执行效率慢
    
    参考:https://blog.csdn.net/weixin_43748216/article/details/90716898

174. 说一下 MySQL常用的引擎?
    Innodb和MyIASM
    
    参考:https://www.cnblogs.com/xiaohaillong/p/6079551.html
    
175. 说一下 MySQL的行锁和表锁?

176. 说一下乐观锁和悲观锁?

177. MySQL问题排查都有哪些手段?

178. 如何做 MySQL的性能优化?
---------------------------------------------------------------------------------------------------------------------------
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值