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分库分表后可能面临的问题

事务支持

分库分表后,就成了分布式事务了。

如果依赖数据库本身的分布式事务管理功能去执行事务,将付出高昂的性能代价; 如果由应用程序去协助控制,形成程序逻辑上的事务,又会造成编程方面的负担。

多库结果集合并(group by,order by)

TODO

跨库join

TODO 分库分表后表之间的关联操作将受到限制,我们无法join位于不同分库的表,也无法join分表粒度不同的表, 结果原本一次查询能够完成的业务,可能需要多次查询才能完成。粗略的解决方法: 全局表:基础数据,所有库都拷贝一份。 字段冗余:这样有些字段就不用join去查询了。 系统层组装:分别查询出所有,然后组装起来,较复杂。