MYSQL面试题 TOP100
1. mysql有哪些存储引擎? 2. 什么是mysql 存储引擎? 3. mysql各存储引擎的特点是什么? 4. 如何查看 mysql 支持的存储引擎?创建表如何指定存储引擎? 5. 什么是 mysql 索引? 6. mysql 有哪些类型的索引? 7. mysql 如何启停? 8. 如何作数据备份? 9. 什么是mysql主从同步? 10. mysql主从同步的目的?为什么要做主从同步? 11. mysql 主从同步的原理是什么? 12. 如何配置 mysql 主从同步? 13. 什么是数据库事务? 14. 数据库事务的四个特性是什么? 15. mysql 事务隔离级别是什么? 16. 为什么要分库分表? 17. mysql分库分表的方案有哪些? 18. mysql分库分表后可能面临的问题 19. 什么是 mysql 慢查询? 20. 如何分析慢查询 sql? 21. mysql 有哪些常用的 sql 优化策略? 22. 有文本数据和整形数据,直接写文件和存入数据库,哪种方式更快? 23. mysql事务隔离级别有哪些,各自的含义是什么?MYSQL 默认的隔离级别是是什么? 24. 说一下MYSQL 常用存储引擎有哪些?各自优缺点 25. 高并发下,如何做到安全的修改同一行数据? 26. 说一下乐观锁和悲观锁是什么?INNODB 的行级锁 27. SQL 优化的一般步骤是什么?怎么看执行计划?如何理解其中各个字段的含义? 28. 数据库会死锁吗,举一个死锁的例子,mysql 怎么解决死锁? 29. 说一下Mysql 的索引原理,索引的类型有哪些?如何创建合理的索引?索引如何优化? 30. 简单说一下数据库中 BTREE 和 B+tree 区别? 31. ACID 是什么? 32. 说一下Mysql 怎么优化 table scan (全表扫描)? 33. 如何写 sql 能够有效的使用到复合索引? 34. 说一下mysql 中 in 和 exists 区别? 35. 数据库自增主键可能有哪些问题?

mysql 主从同步的原理是什么?

Mysql服务器之间的主从同步是基于二进制日志机制,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来保持和主服务器的数据一致。

在使用二进制日志时,主服务器的所有操作都会被记录下来,然后从服务器会接收到该日志的一个副本。从服务器可以指定执行该日志中的哪一类事件(譬如只插入数据或者只更新数据),默认会执行日志中的所有语句。

每一个从服务器会记录关于二进制日志的信息:文件名和已经处理过的语句,这样意味着不同的从服务器可以分别执行同一个二进制日志的不同部分,并且从服务器可以随时连接或者中断和服务器的连接。

主服务器和每一个从服务器都必须配置一个唯一的ID号(在my.cnf文件的[mysqld]模块下有一个server-id配置项),另外,每一个从服务器还需要通过CHANGE MASTER TO语句来配置它要连接的主服务器的ip地址,日志文件名称和该日志里面的位置(这些信息存储在主服务器的数据库里)