mysql 面试题 150 道

  1. MySQL 支持哪些存储引擎?各自的特点是什么?
  2. 什么是数据库的 ACID 特性?
  3. 请解释数据库范式,并列举第一、第二、第三范式的定义。
  4. 数据库和数据表的区别是什么?
  5. 什么是主键和唯一索引的区别?
  6. 如何查看 MySQL 的版本信息?
  7. MySQL 中有哪些常见的数据类型?
  8. 什么是关系型数据库?MySQL 是不是关系型数据库?
  9. 什么是 DDL、DML 和 DCL?
  10. MySQL 中的字符集和排序规则有什么作用?

  1. 如何创建一个数据库?

  2. 如何创建一张数据表?

  3. 如何修改数据表结构(添加字段、删除字段等)?

  4. 如何删除数据库或数据表?

  5. 如何插入一条记录到数据表中?

  6. 如何更新数据表中的记录?

  7. 如何删除数据表中的记录?

  8. DELETETRUNCATE 的区别是什么?

  9. SELECT 查询语句的基本结构是什么?

  10. 如何对查询结果进行排序?

  11. 如何使用 GROUP BY 进行分组统计?

  12. HAVINGWHERE 的区别是什么?

  13. 如何使用 JOIN 操作多张表?

  14. INNER JOINLEFT JOIN 的区别是什么?

  15. 如何使用子查询?

  16. UNIONUNION ALL 的区别是什么?

  17. 如何使用正则表达式匹配查询条件?

  18. 如何限制查询返回的记录数?

  19. 如何使用 CASE WHEN 实现条件判断?

  20. 如何实现跨数据库查询?

  21. 什么是索引?为什么需要索引?

  22. MySQL 中有哪些类型的索引?

  23. 覆盖索引是什么?它的优点是什么?

  24. 前缀索引是什么?如何创建前缀索引?

  25. 索引下推是什么?它对查询性能有什么影响?

  26. 最左匹配原则是什么?如何利用它设计复合索引?

  27. 什么情况下索引会失效?

  28. 如何分析 SQL 查询的执行计划?

  29. EXPLAIN 输出中的 type 字段有哪些可能值?分别代表什么含义?

  30. EXPLAIN 输出中的 Extra 字段有哪些常见内容?它们代表什么问题?

  31. 如何优化慢查询?

  32. 如何开启慢查询日志?

  33. 什么是联合索引?它和多个单列索引有什么区别?

  34. 索引占用磁盘空间吗?如何估算索引大小?

  35. 如何避免全表扫描?

  36. 索引可以被重复使用吗?

  37. 索引的优缺点是什么?

  38. 什么是聚集索引?什么是非聚集索引?

  39. InnoDB 存储引擎是如何组织数据的?

  40. MyISAM 和 InnoDB 在索引实现上的区别是什么?

  41. 什么是事务?事务的四个特性是什么?

  42. MySQL 中的事务支持情况如何?

  43. 什么是事务的隔离级别?MySQL 支持哪些隔离级别?

  44. 不同的事务隔离级别可能导致哪些问题(脏读、不可重复读、幻读)?

  45. 如何设置事务的隔离级别?

  46. 什么是 MVCC(多版本并发控制)?它是如何工作的?

  47. InnoDB 是如何实现事务的?

  48. 什么是事务的提交和回滚?

  49. 如何手动开启事务?

  50. 什么是死锁?MySQL 如何检测和处理死锁?

  51. 如何减少事务的持有时间以提高并发性能?

  52. 事务在高并发场景下的注意事项有哪些?

  53. 如何测试事务的正确性?

  54. 什么是乐观锁和悲观锁?MySQL 中如何实现?

  55. 事务日志的作用是什么?

  56. redo log 和 undo log 的区别是什么?

  57. 如何保证事务的持久性?

  58. 如何查看当前正在运行的事务?

  59. 事务是否会影响索引的更新效率?

  60. 事务的提交方式有哪些?

  61. MySQL 中的锁有哪些类型?

  62. 表级锁和行级锁的区别是什么?

  63. InnoDB 支持哪些锁类型?

  64. 共享锁和排他锁的区别是什么?

  65. 如何手动加锁?

  66. 锁等待超时如何设置?

  67. 如何查看当前的锁信息?

  68. 什么是意向锁?它的作用是什么?

  69. 间隙锁是什么?它的作用是什么?

  70. 如何避免死锁?

  71. 锁升级是什么?MySQL 是否支持?

  72. 锁粒度对性能的影响是什么?

  73. 如何优化锁的使用?

  74. 什么是全局锁?它的应用场景是什么?

  75. 什么是读锁和写锁?

  76. 如何在 SELECT 查询中避免加锁?

  77. 锁的粒度如何选择?

  78. 事务中的锁释放时机是什么时候?

  79. 如何分析锁等待问题?

  80. 锁的开销有多大?


  1. MySQL 提供了哪些备份方式?
  2. 冷备份和热备份的区别是什么?
  3. mysqldump 工具的使用方法是什么?
  4. 如何进行增量备份?
  5. 如何恢复数据?
  6. 备份文件过大怎么办?
  7. 备份策略如何制定?
  8. binlog 的作用是什么?
  9. 如何启用 binlog?
  10. 如何通过 binlog 进行数据恢复?

  1. MySQL 主从复制的原理是什么?
  2. 主从复制有哪些配置方式?
  3. 如何监控主从同步状态?
  4. 主从延迟的原因有哪些?如何解决?
  5. 如何实现读写分离?
  6. MySQL 的集群方案有哪些?
  7. MHA 的工作原理是什么?
  8. MySQL Group Replication 的特点是什么?
  9. 如何搭建 MySQL 的双主架构?
  10. 主从复制中断后如何修复?

  1. MySQL 的用户权限系统是如何工作的?
  2. 如何创建用户并授权?
  3. 如何收回用户的权限?
  4. 权限的作用范围有哪些?
  5. root 用户和普通用户有什么区别?
  6. 如何查看用户的权限?
  7. 密码策略如何设置?
  8. 如何防止 SQL 注入?
  9. SSL 加密连接的配置方法是什么?
  10. 审计日志的作用是什么?

  1. MySQL 的主要配置文件是什么?
  2. 如何调整最大连接数?
  3. 如何优化缓冲池(Buffer Pool)?
  4. 如何配置查询缓存?
  5. 如何查看 MySQL 的运行状态?
  6. 如何调整日志文件的大小?
  7. 如何启用慢查询日志?
  8. 如何调整临时表的大小?
  9. 如何配置自动提交?
  10. 如何调整事务日志的大小?

  1. 什么是分区表?它的优缺点是什么?
  2. 如何实现分库分表?
  3. 如何实现数据库的水平拆分?
  4. 如何实现数据库的垂直拆分?
  5. 如何监控 MySQL 的性能?
  6. 如何评估数据库的容量?
  7. 如何实现数据库的扩容?
  8. 如何实现数据库的迁移?
  9. 如何评估数据库的负载?
  10. 如何优化大数据量的查询性能?
  11. 如何处理高并发写入压力?
  12. 如何实现数据库的灾备?
  13. 如何实现数据库的自动化运维?
  14. 如何实现数据库的监控告警?
  15. 如何实现数据库的自动扩缩容?
  16. 如何评估数据库的性能瓶颈?
  17. 如何优化数据库的 I/O 性能?
  18. 如何优化数据库的 CPU 使用率?
  19. 如何优化数据库的内存使用?
  20. 如何设计一个高可用的 MySQL 架构?

posted @ 2025-06-15 17:03  不报异常的空指针  阅读(35)  评论(0)    收藏  举报