今天给大家分享一下关于MySQL的二十个经典面试题,据说能全部正确回答上来的大神月薪至少能上10k!
1、MySQL的复制原理以及流程
基本原理流程,3个线程以及之间的关联;
2、MySQL中myisam与innodb的区别,至少5点
(1)、问5点不同;
(2)、innodb引擎的4大特性
(3)、2者selectcount(*)哪个更快,为什么
3、MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义
(1)、varchar与char的区别
(2)、varchar(50)中50的涵义
(3)、int(20)中20的涵义
(4)、mysql为什么这么设计
4、问了innodb的事务与日志的实现方式
(1)、有多少种日志;
(2)、事物的4种隔离级别
(3)、事务是如何通过日志来实现的,说得越深入越好。
5、问了MySQL binlog的几种日志录入格式以及区别
(1)、binlog的日志格式的种类和分别
(2)、适用场景;
(3)、结合个问题,每一种日志格式在复制中的优劣。
6、问了下MySQL数据库cpu飙升到500%的话他怎么处理?
(1)、没有经验的,可以不问;
(2)、有经验的,问他们的处理思路。
7、sql优化
(1)、explain出来的各种item的意义;
(2)、profile的意义以及使用场景;
8、备份计划,mysqldump以及xtranbackup的实现原理
(1)、备份计划;
(2)、备份恢复时间;
(3)、xtrabackup实现原理
9、mysqldump中备份出来的sql,如果我想sql文件中,一行只有一个insert....value()的话,怎么办?如果备份需要带上master的复制点信息怎么办?
10、500台db,在快时间之内重启
11、innodb的读写参数优化
(1)、读取参数
(2)、写入参数;
(3)、与IO相关的参数;
(4)、缓存参数以及缓存的适用场景。
12、你是如何监控你们的数据库的?你们的慢日志都是怎么查询的?
13、你是否做过主从一致性校验,如果有,怎么做的,如果没有,你打算怎么做?
14、你们数据库是否支持emoji表情,如果不支持,如何操作?
15、你是如何维护数据库的数据字典的?
16、你们是否有开发规范,如果有,如何执行的
17、表中有大字段X(例如:text类型),且字段X不会经常更新,以读为为主,请问
(1)、您是选择拆成子表,还是继续放一起;
(2)、写出您这样选择的理由。
18、MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?为什么是这样子的?
19、如何从mysqldump产生的全库备份中只恢复某一个库、某一张表?
开放性问题:据说是腾讯的
一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何快的查询出满足条件的第50000到第50200中的这200条数据记录。