夯实基础系列三:数据库知识总结
内容提要
本文总结后端数据库知识,涵盖MySQL基础(SQL分类、DDL/DML/DQL、约束、连接)、JDBC原理与核心类、预编译、DAO模式、事务ACID与隔离级别、连接池、JNDI、ThreadLocal,以及MongoDB安装与使用;性能优化部分介绍三范式、索引、分表、读写分离、SQL优化及索引失效场景。
延伸解读
从SQL分类到JDBC:后端数据库知识体系概览
文章将数据库知识分为MySQL基础、JDBC、MongoDB和性能优化四大块。MySQL部分覆盖SQL分类(DDL、DML、DCL、DQL)、约束、连接类型等;JDBC部分讲解原理、核心类、预编译、DAO模式、事务和连接池。这种结构适合后端开发者系统梳理知识点,但内容偏基础,适合入门或复习。
事务隔离级别与并发问题:理论结合实践
文章详细解释了事务的ACID特性、三种并发读问题(脏读、不可重复读、幻读)以及四种隔离级别。特别指出MySQL默认隔离级别为可重复读,Oracle为读已提交。这些内容有助于理解数据库并发控制,但未深入讨论不同隔离级别的性能影响和实际应用场景。
索引优化:何时使用与何时失效
性能优化部分重点介绍了索引类型和使用原则,如频繁作为查询条件的字段应建索引,但唯一性差或更新频繁的字段不适合。同时列举了索引失效场景,如以%开头的like查询、使用or、多列索引未使用最左列等。这些实用规则能帮助开发者避免常见性能陷阱。
MongoDB安装与使用:从编译到配置
文章简要介绍了MongoDB的安装步骤,包括下载源码、编译、配置文件和启动命令。还列出了常用工具如mongod、mongo、mongoimport等。但内容较为简略,未涉及MongoDB的数据模型、查询语法等核心使用细节,读者可能需要额外资料补充。
Q&A
SQL语言分为哪几类?各自的作用是什么?
SQL分为DDL(数据定义语言,用于定义数据库和表结构)、DML(数据操作语言,用于增删改记录)、DCL(数据控制语言,用于用户权限管理)和DQL(数据查询语言,用于查询数据,不在标准中)。
JDBC的四大核心类是什么?各自有什么作用?
JDBC四大核心类:DriverManager(获取数据库连接)、Connection(创建Statement/PreparedStatement)、Statement(执行SQL,包括executeUpdate、executeQuery等)、ResultSet(封装查询结果,提供getXxx和移动光标方法)。
事务的ACID特性分别指什么?
ACID指原子性(事务操作要么全部成功要么全部失败)、一致性(事务前后数据完整性一致)、隔离性(并发事务互不干扰)、持久性(事务提交后数据永久保存)。
MySQL的四种隔离级别分别解决了哪些并发问题?
四种隔离级别:串行化(避免所有并发问题)、可重复读(防止脏读和不可重复读,MySQL默认)、读已提交(防止脏读,Oracle默认)、读未提交(最低级别,无法防止任何问题)。
MySQL性能优化有哪些常用手段?
常用手段包括:表设计符合3NF、添加适当索引、分表(水平/垂直分割)、读写分离、使用存储过程、优化MySQL配置(如最大并发数、缓存大小)、升级硬件、定时清理数据和碎片整理。
哪些情况下索引会失效?
索引失效情况:条件中使用OR、多列索引未使用最左列、LIKE以%开头、字符串列未用引号、MySQL估计全表扫描更快时。