数据库面试必备:20个高频知识点解析

需积分: 8 1 下载量 170 浏览量 更新于2024-08-11 收藏 83KB DOCX 举报
"数据库高频知识点总结,包括ACID特性、事务隔离级别、存储引擎对比、索引类型、锁机制、数据库范式、读写分离、SQL优化、数据类型选择及并发处理策略等" 1. 事务四大特性(ACID): - 原子性(Atomicity):事务中的所有操作被视为单个操作,不可分割,要么全部成功,要么全部失败。 - 一致性(Consistency):事务完成后,数据库保持一致状态,不违反完整性约束。 - 隔离性(Isolation):并发事务之间不会互相干扰,保证数据一致性。 - 持久性(Durability):一旦事务提交,其结果将永久保存,即使系统崩溃也不会丢失。 2. 事务并发与隔离级别: - 隔离级别有四种:读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。MySQL默认隔离级别是可重复读。 - 各个级别可能导致的问题:脏读、不可重复读、幻读。 3. MySQL存储引擎对比: - InnoDB支持事务和行级锁定,适合事务处理。 - MyISAM不支持事务,但速度较快,适合读多写少的情况。 - MEMORY存储引擎将数据存储在内存中,速度极快,但数据不持久。 4. SQL查询元素执行顺序: FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY > LIMIT。 5. 索引类型: - B+Tree索引适用于范围查询和全序扫描,适合主键或频繁排序、分组的字段。 - Hash索引适用于等值查询,速度非常快,但不支持范围查询和排序。 6. 聚集索引与非聚集索引: - 聚集索引的叶子节点直接包含数据行,非聚集索引的叶子节点指向数据行的地址。 7. 锁机制: - 乐观锁和悲观锁分别用于不同并发控制策略,加锁方式如SELECT ... FOR UPDATE用于悲观锁。 8. 关系型数据库与非关系型数据库: - 关系型数据库遵循ACID特性,数据结构严格,如MySQL;非关系型数据库(NoSQL)灵活,适用于大数据和分布式场景。 9. 数据库设计: - 通过范式理论(第一范式、第二范式、第三范式等)减少数据冗余,提高数据一致性。 10. 主从复制与读写分离: - 通过主从复制实现读写分离,提高数据库性能,主库处理写操作,从库处理读操作。 11. SQL优化: - 使用EXPLAIN分析查询计划,创建合适索引,避免全表扫描,优化JOIN操作。 12. MySQL高并发解决方案: - 分区、分片、读写分离、缓存策略、数据库优化等。 13. 事务恢复机制: - REDO日志记录事务提交前的操作,用于崩溃后恢复;UNDO日志用于回滚未完成的事务。 14. VARCHAR与CHAR的区别: - VARCHAR节省空间,适合变长数据;CHAR固定长度,浪费空间但效率略高。 15. 死锁处理: - 通过死锁检测和超时机制来识别和解决死锁。 以上内容涵盖了数据库面试中常见的知识点,理解并掌握这些可以帮助你更好地应对数据库相关的技术面试。