数据库
数据库是现代应用的核心基础设施,负责数据的存储、检索和管理。根据数据模型的不同,分为关系型和 NoSQL 两大类。
选型速查
事务性业务用 MySQL,高性能缓存用 Redis,灵活 schema 用 MongoDB,全文搜索用 Elasticsearch。
关系型数据库
关系型数据库使用表格结构存储数据,支持 ACID 事务保证数据一致性。MySQL 是最流行的开源关系型数据库,广泛应用于 Web 应用、企业级系统等场景。
MySQL 是本知识库中重点覆盖的关系型数据库,包含索引原理、SQL 优化、事务机制、日志系统、建表规范等核心知识。AliSQL内核特性 记录了阿里云在 MySQL 基础上的内核优化,包括 Binlog In Redo、多块读、高效查询缓存等性能增强。MGR高可用 则介绍了 MySQL Group Replication 高可用架构,基于 Paxos 算法实现分布式协调。
索引是数据库性能优化的关键,索引 深入讲解了 B+Tree 原理、索引分类、Explain 执行计划分析等内容。SQL优化 涵盖了从索引设计到 SQL 编写的全方位优化策略。事务 详细介绍了 ACID 特性、隔离级别和 MVCC 实现原理。日志 解析了 Redo Log、Binlog、Undo Log 三大日志系统的工作机制。建表 则提供了完整的建表规范和最佳实践。
NoSQL 数据库
NoSQL 数据库打破了传统关系型数据库的范式约束,提供更灵活的数据模型和更高的扩展性。
Redis 是高性能的内存数据结构存储,支持字符串、哈希、列表、集合、有序集合等多种数据类型。使用场景 详细列举了 Redis 在缓存、分布式锁、计数器、消息队列、排行榜等 16 个典型场景中的应用。配置 则提供了 Redis 配置文件的完整参考。
MongoDB 是面向文档的 NoSQL 数据库,使用 BSON 格式存储数据,支持灵活的 schema 设计和强大的聚合管道。适合处理半结构化数据、日志存储、内容管理等场景。
Memcached 是高性能的内存缓存系统,采用 Slab Allocation 机制管理内存,适用于简单的键值缓存场景。与 Redis 相比,Memcached 更轻量但功能较少。
搜索引擎
Elasticsearch 是基于 Lucene 的分布式全文搜索引擎,以倒排索引为核心,支持近实时搜索和复杂的聚合分析。广泛应用于日志分析(ELK Stack)、全文检索、性能监控等场景。
技术选型建议
| 场景 | 推荐方案 |
|---|---|
| 事务性业务 | MySQL(InnoDB) |
| 高性能缓存 | Redis |
| 简单键值缓存 | Memcached |
| 灵活 schema | MongoDB |
| 全文搜索 | Elasticsearch |
| 日志分析 | ELK Stack |
| 高可用集群 | MySQL MGR / Redis Cluster |
学习路径
数据库学习建议从 MySQL 开始,掌握 SQL 语法和索引原理后,深入 事务 和 日志 理解内部机制。然后根据业务需求学习 Redis 和 MongoDB 等 NoSQL 数据库。性能优化方面,索引 和 SQL优化 是必读内容。