从 BAT 面试回来,我总结了这三类 MySQL 高频面试题

一:MySQL存储与索引有关问题

MySQL 有哪些存储引擎啊?都有什么区别?
Float、Decimal 存储金额的区别?
Datetime、Timestamp 存储时间的区别?
Char、Varchar、Varbinary 存储字符的区别?
什么是索引?
对比一下B+树索引和 Hash索引?
MySQL索引类型有?
如何管理 MySQL索引?
对Explain参数及重要参数的理解?
索引利弊是什么及索引分类?
二叉树的转置是什么?
聚簇索引和非聚簇索引的区别?
B+tree 如何进行优化?索引遵循哪些原则?存储引擎会进行哪些自动优化?到底何时索引会失效?
索引与锁有什么关系?
还有什么其他的索引类型,各自索引有哪些优缺点?

二:MySQL事务和锁有关问题

谈谈对Innodb事务的理解?
说说数据库事务特点及潜在问题?
什么是MySQL隔离级别?
有多少种事务失效的场景,如何解决?
一致性非锁定读和一致性锁定读是什么?
Innodb如何解决幻读?
讲讲Innodb行锁?
死锁及监控是什么?
自增长与锁 ,锁的算法,锁问题,锁升级是什么?
乐观锁的线程如何做失败补偿?
高并发场景(领红包)如何防止死锁,保证数据一致性?
谈谈MySQL的锁并发?

三:MySQL性能优化有关问题

回表和集群因子是什么?
讲讲表与表之间的关系?
了解查询优化器模块;
查询优化的基本思路是什么?
说说MySQL读写分离、分库分表?
Query语句对数据库性能有什么影响?
Schema设计对系统性能有什么影响?
硬件环境对数据库的性能有什么影响?
表结构对性能有什么影响?
浅谈索引优化?
JOIN的原理是什么?
说说Sql优化的几点原则?
MySQL表设计及规范?
说说MySQL几种存储引擎应用场景?
MySQL常用优化方式有哪些?
MySQL常用监控?
MySQL瓶颈分析?

你可能感兴趣的:(从 BAT 面试回来,我总结了这三类 MySQL 高频面试题)