mysql 面试题 150 道
- MySQL 支持哪些存储引擎?各自的特点是什么?
- 什么是数据库的 ACID 特性?
- 请解释数据库范式,并列举第一、第二、第三范式的定义。
- 数据库和数据表的区别是什么?
- 什么是主键和唯一索引的区别?
- 如何查看 MySQL 的版本信息?
- MySQL 中有哪些常见的数据类型?
- 什么是关系型数据库?MySQL 是不是关系型数据库?
- 什么是 DDL、DML 和 DCL?
- MySQL 中的字符集和排序规则有什么作用?
-
如何创建一个数据库?
-
如何创建一张数据表?
-
如何修改数据表结构(添加字段、删除字段等)?
-
如何删除数据库或数据表?
-
如何插入一条记录到数据表中?
-
如何更新数据表中的记录?
-
如何删除数据表中的记录?
-
DELETE和TRUNCATE的区别是什么? -
SELECT查询语句的基本结构是什么? -
如何对查询结果进行排序?
-
如何使用
GROUP BY进行分组统计? -
HAVING和WHERE的区别是什么? -
如何使用
JOIN操作多张表? -
INNER JOIN和LEFT JOIN的区别是什么? -
如何使用子查询?
-
UNION和UNION ALL的区别是什么? -
如何使用正则表达式匹配查询条件?
-
如何限制查询返回的记录数?
-
如何使用
CASE WHEN实现条件判断? -
如何实现跨数据库查询?
-
什么是索引?为什么需要索引?
-
MySQL 中有哪些类型的索引?
-
覆盖索引是什么?它的优点是什么?
-
前缀索引是什么?如何创建前缀索引?
-
索引下推是什么?它对查询性能有什么影响?
-
最左匹配原则是什么?如何利用它设计复合索引?
-
什么情况下索引会失效?
-
如何分析 SQL 查询的执行计划?
-
EXPLAIN输出中的type字段有哪些可能值?分别代表什么含义? -
EXPLAIN输出中的Extra字段有哪些常见内容?它们代表什么问题? -
如何优化慢查询?
-
如何开启慢查询日志?
-
什么是联合索引?它和多个单列索引有什么区别?
-
索引占用磁盘空间吗?如何估算索引大小?
-
如何避免全表扫描?
-
索引可以被重复使用吗?
-
索引的优缺点是什么?
-
什么是聚集索引?什么是非聚集索引?
-
InnoDB 存储引擎是如何组织数据的?
-
MyISAM 和 InnoDB 在索引实现上的区别是什么?
-
什么是事务?事务的四个特性是什么?
-
MySQL 中的事务支持情况如何?
-
什么是事务的隔离级别?MySQL 支持哪些隔离级别?
-
不同的事务隔离级别可能导致哪些问题(脏读、不可重复读、幻读)?
-
如何设置事务的隔离级别?
-
什么是 MVCC(多版本并发控制)?它是如何工作的?
-
InnoDB 是如何实现事务的?
-
什么是事务的提交和回滚?
-
如何手动开启事务?
-
什么是死锁?MySQL 如何检测和处理死锁?
-
如何减少事务的持有时间以提高并发性能?
-
事务在高并发场景下的注意事项有哪些?
-
如何测试事务的正确性?
-
什么是乐观锁和悲观锁?MySQL 中如何实现?
-
事务日志的作用是什么?
-
redo log 和 undo log 的区别是什么?
-
如何保证事务的持久性?
-
如何查看当前正在运行的事务?
-
事务是否会影响索引的更新效率?
-
事务的提交方式有哪些?
-
MySQL 中的锁有哪些类型?
-
表级锁和行级锁的区别是什么?
-
InnoDB 支持哪些锁类型?
-
共享锁和排他锁的区别是什么?
-
如何手动加锁?
-
锁等待超时如何设置?
-
如何查看当前的锁信息?
-
什么是意向锁?它的作用是什么?
-
间隙锁是什么?它的作用是什么?
-
如何避免死锁?
-
锁升级是什么?MySQL 是否支持?
-
锁粒度对性能的影响是什么?
-
如何优化锁的使用?
-
什么是全局锁?它的应用场景是什么?
-
什么是读锁和写锁?
-
如何在 SELECT 查询中避免加锁?
-
锁的粒度如何选择?
-
事务中的锁释放时机是什么时候?
-
如何分析锁等待问题?
-
锁的开销有多大?
- MySQL 提供了哪些备份方式?
- 冷备份和热备份的区别是什么?
- mysqldump 工具的使用方法是什么?
- 如何进行增量备份?
- 如何恢复数据?
- 备份文件过大怎么办?
- 备份策略如何制定?
- binlog 的作用是什么?
- 如何启用 binlog?
- 如何通过 binlog 进行数据恢复?
- MySQL 主从复制的原理是什么?
- 主从复制有哪些配置方式?
- 如何监控主从同步状态?
- 主从延迟的原因有哪些?如何解决?
- 如何实现读写分离?
- MySQL 的集群方案有哪些?
- MHA 的工作原理是什么?
- MySQL Group Replication 的特点是什么?
- 如何搭建 MySQL 的双主架构?
- 主从复制中断后如何修复?
- MySQL 的用户权限系统是如何工作的?
- 如何创建用户并授权?
- 如何收回用户的权限?
- 权限的作用范围有哪些?
- root 用户和普通用户有什么区别?
- 如何查看用户的权限?
- 密码策略如何设置?
- 如何防止 SQL 注入?
- SSL 加密连接的配置方法是什么?
- 审计日志的作用是什么?
- MySQL 的主要配置文件是什么?
- 如何调整最大连接数?
- 如何优化缓冲池(Buffer Pool)?
- 如何配置查询缓存?
- 如何查看 MySQL 的运行状态?
- 如何调整日志文件的大小?
- 如何启用慢查询日志?
- 如何调整临时表的大小?
- 如何配置自动提交?
- 如何调整事务日志的大小?
- 什么是分区表?它的优缺点是什么?
- 如何实现分库分表?
- 如何实现数据库的水平拆分?
- 如何实现数据库的垂直拆分?
- 如何监控 MySQL 的性能?
- 如何评估数据库的容量?
- 如何实现数据库的扩容?
- 如何实现数据库的迁移?
- 如何评估数据库的负载?
- 如何优化大数据量的查询性能?
- 如何处理高并发写入压力?
- 如何实现数据库的灾备?
- 如何实现数据库的自动化运维?
- 如何实现数据库的监控告警?
- 如何实现数据库的自动扩缩容?
- 如何评估数据库的性能瓶颈?
- 如何优化数据库的 I/O 性能?
- 如何优化数据库的 CPU 使用率?
- 如何优化数据库的内存使用?
- 如何设计一个高可用的 MySQL 架构?

浙公网安备 33010602011771号