按图索骥,一些mysql知识点
有事没事多看看
基础知识考察
- 基础知识,尤其是一些理论知识,例如:
- MySQL有哪些索引类型,这是个半开放式命题;
- 从数据结构角度可分为B+树索引、哈希索引、以及不常用的FULLTEXT索引(现在MyISAM和InnoDB引擎都支持了)和R-Tree索引(用于对GIS数据类型创建SPATIAL索引);
- 从物理存储角度可分为聚集索引
(clustered index)
、非聚集索引(non-clustered index)
; - 从逻辑角度可分为主键索引、普通索引,或者单列索引、多列索引、唯一索引、非唯一索引等等。需要掌握这些不同概念之间的区别,例如
主键索引和唯一索引的区别是什么
。- 为什么InnoDB表最好要有自增列做主键;
- 为什么需要设置双1才能保证主从数据的一致性;
- 有几种binlog格式*,及其区别是什么;
- 如何确认MySQL replication真正的复制延迟是多少;
- 有过哪些印象深刻的实践经验。
通过考察候选人的基础知识掌握程度,可侧面反映候选人对学习的态度,是否仅浅层面的了解。
核心技术能力考察
- 核心关键技术能力,例如:
- 怎么做的MySQL备份恢复方案及策略,为什么那么做,用什么工具;
- MySQL主从复制的具体原理是什么,实际使用过程中,遇到过哪些坑,怎么解决的;
- 对一个大表做在线DDL,怎么进行实施的才能尽可能降低影响;
- MyISAM和InnoDB都有哪些不同之处;
- InnoDB的体系结构是否能讲的清楚,至少说出个大概;
- 假设现在服务器负载很高,都有哪些性能问题排查思路,以及优化的方案;
- 什么是死锁,什么是锁等待,如何优化;
- 关于MySQL及InnoDB优化,讲讲自己的见解或者实践经验;
- 如何确定及实施MySQL高可用方案,不同方案的优缺点对比;
- 一定规模的MySQL自动化运维经验如何;
- 在SCHEMA设计方面的经验如何;
- 基于MySQL所做过的一些数据库架构方案设计、实施经验。
通过考察候选人对这些核心关键技术的掌握程度,可知晓候选人对深层次知识的掌握情况,除了实践,理论方面掌握了多少。