更多面试题
可关注微信公众号“假装正经的程序员”获取更多面试题和本篇详细答案,如有问题也可通过公众号私信
公众号目前正处于完善中,后续更多硬核干货会通过公众号免费发布,扫码关注
前言
本篇为MySQL相关面试问题,涉及到初、中、高级程序员必备知识。问题有深有浅,想要拿到高薪,需要大部分掌握
问题
- VARCHAR和CHAR的区别(基础)
- VARCHAR(30)中的30代表的含义(基础)
- int(11)中的11代表什么含义(基础,扩展讲可加分)
- 索引有哪些划分及种类
- 创建索引时会锁表吗
- 什么是簇族索引?什么是非簇族索引
- 簇族索引和非簇族索引有什么区别
- 索引底层是如何实现的(中高级高频)
- B树和B+树索引有什么区别(中高级)
- 如何查看SQL是否命中索引
- 什么时候不要使用索引
- 有哪些情况会导致索引不生效(高频)
- MyISAM和InnoDB的区别(高频)
- 简单介绍下redo日志,有什么作用
- 什么是undo日志,有什么作用
- 如何保证事务的四大特性
- 什么是MVCC,它是为了解决什么问题
- MVCC的实现原理是什么(中高级高频)
- MVCC在什么事务隔离级别下生效
- 事务隔离级别有哪些,分别会有什么问题
- 不可重复读和幻读的区别(中级高频)
- 大表如何优化(高级高频)
- 表数据达到多少量的时候会进行分库分表(高级高频)
- 分库分表后表的主键id如何生成(高级高频)
- 说说在MySQL中一条查询SQL是如何执行的(高级)
- 如何排查慢SQL(高级)
- 什么是数据库死锁(高级)
- 怎样尽量避免死锁的出现
- 如何解决数据库死锁
- MySQL的默认隔离级别是什么(中级高频)
- Hash索引冲突了如何解决(加分)
- 说说悲观锁和乐观锁呢
- 主键和候选键有什么区别
- 主键与索引有什么区别(中级高频)
- 为什么 SELECT COUNT(*) FROM table在InnoDB比MyISAM慢(低频,但加分)
- 说一说drop、delete与truncate的区别(低频,但加分)
所有答案均可通过公众号“假装正经的程序员”获取,面试相关问题及答案持续更新中