{"id":13437028,"url":"https://github.com/dunwu/db-tutorial","last_synced_at":"2025-05-16T06:04:57.164Z","repository":{"id":38431154,"uuid":"99658622","full_name":"dunwu/db-tutorial","owner":"dunwu","description":"📚 后端程序员应该掌握的主流数据库知识","archived":false,"fork":false,"pushed_at":"2024-10-08T23:22:25.000Z","size":13001,"stargazers_count":4585,"open_issues_count":10,"forks_count":588,"subscribers_count":39,"default_branch":"master","last_synced_at":"2025-04-09T17:20:01.980Z","etag":null,"topics":["database","db","elasticsearch","hbase","mongodb","mysql","nosql","redis","sql"],"latest_commit_sha":null,"homepage":"https://dunwu.github.io/db-tutorial/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dunwu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-08T06:33:38.000Z","updated_at":"2025-04-09T09:23:06.000Z","dependencies_parsed_at":"2023-01-21T01:09:17.549Z","dependency_job_id":"93911385-918e-43e1-a3fd-4971b25626d2","html_url":"https://github.com/dunwu/db-tutorial","commit_stats":{"total_commits":226,"total_committers":5,"mean_commits":45.2,"dds":0.04424778761061943,"last_synced_commit":"47d7d1552f1be6cde030d44b19d976553965886a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunwu%2Fdb-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunwu%2Fdb-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunwu%2Fdb-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunwu%2Fdb-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dunwu","download_url":"https://codeload.github.com/dunwu/db-tutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478187,"owners_count":22077676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","db","elasticsearch","hbase","mongodb","mysql","nosql","redis","sql"],"created_at":"2024-07-31T03:00:53.830Z","updated_at":"2025-05-16T06:04:57.144Z","avatar_url":"https://github.com/dunwu.png","language":"Java","readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://dunwu.github.io/db-tutorial/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/dunwu/images/master/common/dunwu-logo.png\" alt=\"logo\" width=\"150px\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\n  \u003ca href=\"https://github.com/dunwu/db-tutorial\"\u003e\n      \u003cimg alt=\"star\" class=\"no-zoom\" src=\"https://img.shields.io/github/stars/dunwu/db-tutorial?style=for-the-badge\"\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/dunwu/db-tutorial\"\u003e\n      \u003cimg alt=\"fork\" class=\"no-zoom\" src=\"https://img.shields.io/github/forks/dunwu/db-tutorial?style=for-the-badge\"\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/dunwu/db-tutorial/commits/master\"\u003e\n      \u003cimg alt=\"build\" class=\"no-zoom\" src=\"https://img.shields.io/github/actions/workflow/status/dunwu/db-tutorial/deploy.yml?style=for-the-badge\"\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh\"\u003e\n      \u003cimg alt=\"code style\" class=\"no-zoom\" src=\"https://img.shields.io/github/license/dunwu/db-tutorial?style=for-the-badge\"\u003e\n  \u003c/a\u003e\n\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eDB-TUTORIAL\u003c/h1\u003e\n\n\u003e 💾 **db-tutorial** 是一个数据库教程。\n\u003e\n\u003e - 🔁 项目同步维护：[Github](https://github.com/dunwu/db-tutorial/) | [Gitee](https://gitee.com/turnon/db-tutorial/)\n\u003e - 📖 电子书阅读：[Github Pages](https://dunwu.github.io/db-tutorial/) | [Gitee Pages](https://turnon.gitee.io/db-tutorial/)\n\n## 数据库综合\n\n### 分布式存储原理\n\n#### 分布式理论\n\n- [分布式一致性](https://dunwu.github.io/blog/pages/dac0e2/)\n- [深入剖析共识性算法 Paxos](https://dunwu.github.io/blog/pages/874539/)\n- [深入剖析共识性算法 Raft](https://dunwu.github.io/blog/pages/e40812/)\n- [分布式算法 Gossip](https://dunwu.github.io/blog/pages/d15993/)\n\n#### 分布式关键技术\n\n##### 流量调度\n\n- [流量控制](https://dunwu.github.io/blog/pages/282676/)\n- [负载均衡](https://dunwu.github.io/blog/pages/98a1c1/)\n- [服务路由](https://dunwu.github.io/blog/pages/d04ece/)\n- [分布式会话基本原理](https://dunwu.github.io/blog/pages/3e66c2/)\n\n##### 数据调度\n\n- [缓存基本原理](https://dunwu.github.io/blog/pages/471208/)\n- [读写分离基本原理](https://dunwu.github.io/blog/pages/7da6ca/)\n- [分库分表基本原理](https://dunwu.github.io/blog/pages/103382/)\n- [分布式 ID 基本原理](https://dunwu.github.io/blog/pages/0b2e59/)\n- [分布式事务基本原理](https://dunwu.github.io/blog/pages/910bad/)\n- [分布式锁基本原理](https://dunwu.github.io/blog/pages/69360c/)\n\n### 其他\n\n- [Nosql 技术选型](docs/12.数据库/01.数据库综合/01.Nosql技术选型.md)\n- [数据结构与数据库索引](docs/12.数据库/01.数据库综合/02.数据结构与数据库索引.md)\n\n## 数据库中间件\n\n- [ShardingSphere 简介](docs/12.数据库/02.数据库中间件/01.Shardingsphere/01.ShardingSphere简介.md)\n- [ShardingSphere Jdbc](docs/12.数据库/02.数据库中间件/01.Shardingsphere/02.ShardingSphereJdbc.md)\n- [版本管理中间件 Flyway](docs/12.数据库/02.数据库中间件/02.Flyway.md)\n\n## 关系型数据库\n\n\u003e [关系型数据库](docs/12.数据库/03.关系型数据库) 整理主流关系型数据库知识点。\n\n### 关系型数据库综合\n\n- [关系型数据库面试总结](docs/12.数据库/03.关系型数据库/01.综合/01.关系型数据库面试.md) 💯\n- [SQL 语法基础特性](docs/12.数据库/03.关系型数据库/01.综合/02.SQL语法基础特性.md)\n- [SQL 语法高级特性](docs/12.数据库/03.关系型数据库/01.综合/03.SQL语法高级特性.md)\n- [扩展 SQL](docs/12.数据库/03.关系型数据库/01.综合/03.扩展SQL.md)\n- [SQL Cheat Sheet](docs/12.数据库/03.关系型数据库/01.综合/99.SqlCheatSheet.md)\n\n### Mysql\n\n![img](https://raw.githubusercontent.com/dunwu/images/master/snap/20200716103611.png)\n\n- [Mysql 应用指南](docs/12.数据库/03.关系型数据库/02.Mysql/01.Mysql应用指南.md) ⚡\n- [Mysql 工作流](docs/12.数据库/03.关系型数据库/02.Mysql/02.MySQL工作流.md) - 关键词：`连接`、`缓存`、`语法分析`、`优化`、`执行引擎`、`redo log`、`bin log`、`两阶段提交`\n- [Mysql 事务](docs/12.数据库/03.关系型数据库/02.Mysql/03.Mysql事务.md) - 关键词：`ACID`、`AUTOCOMMIT`、`事务隔离级别`、`死锁`、`分布式事务`\n- [Mysql 锁](docs/12.数据库/03.关系型数据库/02.Mysql/04.Mysql锁.md) - 关键词：`乐观锁`、`表级锁`、`行级锁`、`意向锁`、`MVCC`、`Next-key 锁`\n- [Mysql 索引](docs/12.数据库/03.关系型数据库/02.Mysql/05.Mysql索引.md) - 关键词：`Hash`、`B 树`、`聚簇索引`、`回表`\n- [Mysql 性能优化](docs/12.数据库/03.关系型数据库/02.Mysql/06.Mysql性能优化.md)\n- [Mysql 运维](docs/12.数据库/03.关系型数据库/02.Mysql/20.Mysql运维.md) 🔨\n- [Mysql 配置](docs/12.数据库/03.关系型数据库/02.Mysql/21.Mysql配置.md) 🔨\n- [Mysql 问题](docs/12.数据库/03.关系型数据库/02.Mysql/99.Mysql常见问题.md)\n\n### 其他\n\n- [PostgreSQL 应用指南](docs/12.数据库/03.关系型数据库/99.其他/01.PostgreSQL.md)\n- [H2 应用指南](docs/12.数据库/03.关系型数据库/99.其他/02.H2.md)\n- [SqLite 应用指南](docs/12.数据库/03.关系型数据库/99.其他/03.Sqlite.md)\n\n## 文档数据库\n\n### MongoDB\n\n\u003e MongoDB 是一个基于文档的分布式数据库，由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。\n\u003e\n\u003e MongoDB 是一个介于关系型数据库和非关系型数据库之间的产品。它是非关系数据库当中功能最丰富，最像关系数据库的。它支持的数据结构非常松散，是类似 json 的 bson 格式，因此可以存储比较复杂的数据类型。\n\u003e\n\u003e MongoDB 最大的特点是它支持的查询语言非常强大，其语法有点类似于面向对象的查询语言，几乎可以实现类似关系数据库单表查询的绝大部分功能，而且还支持对数据建立索引。\n\n- [MongoDB 应用指南](docs/12.数据库/04.文档数据库/01.MongoDB/01.MongoDB应用指南.md)\n- [MongoDB 的 CRUD 操作](docs/12.数据库/04.文档数据库/01.MongoDB/02.MongoDB的CRUD操作.md)\n- [MongoDB 聚合操作](docs/12.数据库/04.文档数据库/01.MongoDB/03.MongoDB的聚合操作.md)\n- [MongoDB 事务](docs/12.数据库/04.文档数据库/01.MongoDB/04.MongoDB事务.md)\n- [MongoDB 建模](docs/12.数据库/04.文档数据库/01.MongoDB/05.MongoDB建模.md)\n- [MongoDB 建模示例](docs/12.数据库/04.文档数据库/01.MongoDB/06.MongoDB建模示例.md)\n- [MongoDB 索引](docs/12.数据库/04.文档数据库/01.MongoDB/07.MongoDB索引.md)\n- [MongoDB 复制](docs/12.数据库/04.文档数据库/01.MongoDB/08.MongoDB复制.md)\n- [MongoDB 分片](docs/12.数据库/04.文档数据库/01.MongoDB/09.MongoDB分片.md)\n- [MongoDB 运维](docs/12.数据库/04.文档数据库/01.MongoDB/20.MongoDB运维.md)\n\n## KV 数据库\n\n### Redis\n\n![img](https://raw.githubusercontent.com/dunwu/images/master/snap/20200713105627.png)\n\n- [Redis 面试总结](docs/12.数据库/05.KV数据库/01.Redis/01.Redis面试总结.md) 💯\n- [Redis 应用指南](docs/12.数据库/05.KV数据库/01.Redis/02.Redis应用指南.md) ⚡ - 关键词：`内存淘汰`、`事件`、`事务`、`管道`、`发布与订阅`\n- [Redis 数据类型和应用](docs/12.数据库/05.KV数据库/01.Redis/03.Redis数据类型和应用.md) - 关键词：`STRING`、`HASH`、`LIST`、`SET`、`ZSET`、`BitMap`、`HyperLogLog`、`Geo`\n- [Redis 持久化](docs/12.数据库/05.KV数据库/01.Redis/04.Redis持久化.md) - 关键词：`RDB`、`AOF`、`SAVE`、`BGSAVE`、`appendfsync`\n- [Redis 复制](docs/12.数据库/05.KV数据库/01.Redis/05.Redis复制.md) - 关键词：`SLAVEOF`、`SYNC`、`PSYNC`、`REPLCONF ACK`\n- [Redis 哨兵](docs/12.数据库/05.KV数据库/01.Redis/06.Redis哨兵.md) - 关键词：`Sentinel`、`PING`、`INFO`、`Raft`\n- [Redis 集群](docs/12.数据库/05.KV数据库/01.Redis/07.Redis集群.md) - 关键词：`CLUSTER MEET`、`Hash slot`、`MOVED`、`ASK`、`SLAVEOF no one`、`redis-trib`\n- [Redis 实战](docs/12.数据库/05.KV数据库/01.Redis/08.Redis实战.md) - 关键词：`缓存`、`分布式锁`、`布隆过滤器`\n- [Redis 运维](docs/12.数据库/05.KV数据库/01.Redis/20.Redis运维.md) 🔨 - 关键词：`安装`、`命令`、`集群`、`客户端`\n\n## 列式数据库\n\n### HBase\n\n- [HBase 快速入门](docs/12.数据库/06.列式数据库/01.HBase/01.HBase快速入门.md)\n- [HBase 数据模型](docs/12.数据库/06.列式数据库/01.HBase/02.HBase数据模型.md)\n- [HBase Schema 设计](docs/12.数据库/06.列式数据库/01.HBase/03.HBaseSchema设计.md)\n- [HBase 架构](docs/12.数据库/06.列式数据库/01.HBase/04.HBase架构.md)\n- [HBase Java API 基础特性](docs/12.数据库/06.列式数据库/01.HBase/10.HBaseJavaApi基础特性.md)\n- [HBase Java API 高级特性之过滤器](docs/12.数据库/06.列式数据库/01.HBase/11.HBaseJavaApi高级特性之过滤器.md)\n- [HBase Java API 高级特性之协处理器](docs/12.数据库/06.列式数据库/01.HBase/12.HBaseJavaApi高级特性之协处理器.md)\n- [HBase Java API 其他高级特性](docs/12.数据库/06.列式数据库/01.HBase/13.HBaseJavaApi其他高级特性.md)\n- [HBase 运维](docs/12.数据库/06.列式数据库/01.HBase/21.HBase运维.md)\n- [HBase 命令](docs/12.数据库/06.列式数据库/01.HBase/22.HBase命令.md)\n\n## 搜索引擎数据库\n\n### Elasticsearch\n\n\u003e Elasticsearch 是一个基于 Lucene 的搜索和数据分析工具，它提供了一个分布式服务。Elasticsearch 是遵从 Apache 开源条款的一款开源产品，是当前主流的企业级搜索引擎。\n\n- [Elasticsearch 面试总结](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/01.Elasticsearch面试总结.md) 💯\n- [Elasticsearch 快速入门](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/02.Elasticsearch快速入门.md)\n- [Elasticsearch 简介](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/03.Elasticsearch简介.md)\n- [Elasticsearch 索引](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/04.Elasticsearch索引.md)\n- [Elasticsearch 查询](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/05.Elasticsearch查询.md)\n- [Elasticsearch 高亮](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/06.Elasticsearch高亮.md)\n- [Elasticsearch 排序](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/07.Elasticsearch排序.md)\n- [Elasticsearch 聚合](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/08.Elasticsearch聚合.md)\n- [Elasticsearch 分析器](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/09.Elasticsearch分析器.md)\n- [Elasticsearch 性能优化](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/10.Elasticsearch性能优化.md)\n- [Elasticsearch Rest API](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/11.ElasticsearchRestApi.md)\n- [ElasticSearch Java API 之 High Level REST Client](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/12.ElasticsearchHighLevelRestJavaApi.md)\n- [Elasticsearch 集群和分片](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/13.Elasticsearch集群和分片.md)\n- [Elasticsearch 运维](docs/12.数据库/07.搜索引擎数据库/01.Elasticsearch/20.Elasticsearch运维.md)\n\n### Elastic\n\n- [Elastic 快速入门](docs/12.数据库/07.搜索引擎数据库/02.Elastic/01.Elastic快速入门.md)\n- [Elastic 技术栈之 Filebeat](docs/12.数据库/07.搜索引擎数据库/02.Elastic/02.Elastic技术栈之Filebeat.md)\n- [Filebeat 运维](docs/12.数据库/07.搜索引擎数据库/02.Elastic/03.Filebeat运维.md)\n- [Elastic 技术栈之 Kibana](docs/12.数据库/07.搜索引擎数据库/02.Elastic/04.Elastic技术栈之Kibana.md)\n- [Kibana 运维](docs/12.数据库/07.搜索引擎数据库/02.Elastic/05.Kibana运维.md)\n- [Elastic 技术栈之 Logstash](docs/12.数据库/07.搜索引擎数据库/02.Elastic/06.Elastic技术栈之Logstash.md)\n- [Logstash 运维](docs/12.数据库/07.搜索引擎数据库/02.Elastic/07.Logstash运维.md)\n\n## 资料 📚\n\n### 数据库综合资料\n\n- [DB-Engines](https://db-engines.com/en/ranking) - 数据库流行度排名\n- **书籍**\n  - [《数据密集型应用系统设计》](https://book.douban.com/subject/30329536/) - 这可能是目前最好的分布式存储书籍，强力推荐【进阶】\n- **教程**\n  - [CMU 15445 数据库基础课程](https://15445.courses.cs.cmu.edu/fall2019/schedule.html)\n  - [CMU 15721 数据库高级课程](https://15721.courses.cs.cmu.edu/spring2020/schedule.html)\n  - [检索技术核心 20 讲](https://time.geekbang.org/column/intro/100048401) - 极客教程【进阶】\n  - [后端存储实战课](https://time.geekbang.org/column/intro/100046801) - 极客教程【入门】：讲解存储在电商领域的种种应用和一些基本特性\n- **论文**\n  - [Efficiency in the Columbia Database Query Optimizer](https://15721.courses.cs.cmu.edu/spring2018/papers/15-optimizer1/xu-columbia-thesis1998.pdf)\n  - [How Good Are Query Optimizers, Really?](http://www.vldb.org/pvldb/vol9/p204-leis.pdf)\n  - [Architecture of a Database System](https://dsf.berkeley.edu/papers/fntdb07-architecture.pdf)\n  - [Data Structures for Databases](https://www.cise.ufl.edu/~mschneid/Research/papers/HS05BoCh.pdf)\n- **文章**\n  - [Data Structures and Algorithms for Big Databases](https://people.csail.mit.edu/bradley/BenderKuszmaul-tutorial-xldb12.pdf)\n\n### 关系型数据库资料\n\n- **综合资料**\n  - [《数据库的索引设计与优化》](https://book.douban.com/subject/26419771/)\n  - [《SQL 必知必会》](https://book.douban.com/subject/35167240/) - SQL 的基本概念和语法【入门】\n- **Oracle 资料**\n  - [《Oracle Database 9i/10g/11g 编程艺术》](https://book.douban.com/subject/5402711/)\n\n#### Mysql 资料\n\n- **官方**\n  - [Mysql 官网](https://www.mysql.com/)\n  - [Mysql 官方文档](https://dev.mysql.com/doc/)\n  - **官方 PPT**\n    - [How to Analyze and Tune MySQL Queries for Better Performance](https://www.mysql.com/cn/why-mysql/presentations/tune-mysql-queries-performance/)\n    - [MySQL Performance Tuning 101](https://www.mysql.com/cn/why-mysql/presentations/mysql-performance-tuning101/)\n    - [MySQL Performance Schema \u0026 Sys Schema](https://www.mysql.com/cn/why-mysql/presentations/mysql-performance-sys-schema/)\n    - [MySQL Performance: Demystified Tuning \u0026 Best Practices](https://www.mysql.com/cn/why-mysql/presentations/mysql-performance-tuning-best-practices/)\n    - [MySQL Security Best Practices](https://www.mysql.com/cn/why-mysql/presentations/mysql-security-best-practices/)\n    - [MySQL Cluster Deployment Best Practices](https://www.mysql.com/cn/why-mysql/presentations/mysql-cluster-deployment-best-practices/)\n    - [MySQL High Availability with InnoDB Cluster](https://www.mysql.com/cn/why-mysql/presentations/mysql-high-availability-innodb-cluster/)\n- **书籍**\n  - [《高性能 MySQL》](https://book.douban.com/subject/23008813/) - 经典，适合 DBA 或作为开发者的参考手册【进阶】\n  - [《MySQL 技术内幕：InnoDB 存储引擎》](https://book.douban.com/subject/24708143/)\n  - [《MySQL 必知必会》](https://book.douban.com/subject/3354490/) - Mysql 的基本概念和语法【入门】\n- **教程**\n  - [runoob.com MySQL 教程](http://www.runoob.com/mysql/mysql-tutorial.html) - 入门级 SQL 教程\n  - [mysql-tutorial](https://github.com/jaywcjlove/mysql-tutorial)\n- **文章**\n  - [MySQL 索引背后的数据结构及算法原理](http://blog.codinglabs.org/articles/theory-of-mysql-index.html)\n  - [Some study on database storage internals](https://medium.com/@kousiknath/data-structures-database-storage-internals-1f5ed3619d43)\n  - [Sharding Pinterest: How we scaled our MySQL fleet](https://medium.com/@Pinterest_Engineering/sharding-pinterest-how-we-scaled-our-mysql-fleet-3f341e96ca6f)\n  - [Guide to MySQL High Availability](https://www.mysql.com/cn/why-mysql/white-papers/mysql-guide-to-high-availability-solutions/)\n  - [Choosing MySQL High Availability Solutions](https://dzone.com/articles/choosing-mysql-high-availability-solutions)\n  - [High availability with MariaDB TX: The definitive guide](https://mariadb.com/sites/default/files/content/Whitepaper_High_availability_with_MariaDB-TX.pdf)\n  - Mysql 相关经验\n    - [Booking.com: Evolution of MySQL System Design](https://www.percona.com/live/mysql-conference-2015/sessions/bookingcom-evolution-mysql-system-design) ，Booking.com 的 MySQL 数据库使用的演化，其中有很多不错的经验分享，我相信也是很多公司会遇到的的问题。\n    - [Tracking the Money - Scaling Financial Reporting at Airbnb](https://medium.com/airbnb-engineering/tracking-the-money-scaling-financial-reporting-at-airbnb-6d742b80f040) ，Airbnb 的数据库扩展的经验分享。\n    - [Why Uber Engineering Switched from Postgres to MySQL](https://eng.uber.com/mysql-migration/) ，无意比较两个数据库谁好谁不好，推荐这篇 Uber 的长文，主要是想让你从中学习到一些经验和技术细节，这是一篇很不错的文章。\n  - Mysql 集群复制\n    - [Monitoring Delayed Replication, With A Focus On MySQL](https://engineering.imvu.com/2013/01/09/monitoring-delayed-replication-with-a-focus-on-mysql/)\n    - [Mitigating replication lag and reducing read load with freno](https://githubengineering.com/mitigating-replication-lag-and-reducing-read-load-with-freno/)\n    - [Better Parallel Replication for MySQL](https://medium.com/booking-com-infrastructure/better-parallel-replication-for-mysql-14e2d7857813)\n    - [Evaluating MySQL Parallel Replication Part 2: Slave Group Commit](https://medium.com/booking-com-infrastructure/evaluating-mysql-parallel-replication-part-2-slave-group-commit-459026a141d2)\n    - [Evaluating MySQL Parallel Replication Part 3: Benchmarks in Production](https://medium.com/booking-com-infrastructure/evaluating-mysql-parallel-replication-part-3-benchmarks-in-production-db5811058d74)\n    - [Evaluating MySQL Parallel Replication Part 4: More Benchmarks in Production](https://medium.com/booking-com-infrastructure/evaluating-mysql-parallel-replication-part-4-more-benchmarks-in-production-49ee255043ab)\n    - [Evaluating MySQL Parallel Replication Part 4, Annex: Under the Hood](https://medium.com/booking-com-infrastructure/evaluating-mysql-parallel-replication-part-4-annex-under-the-hood-eb456cf8b2fb)\n  - Mysql 数据分区\n    - [StackOverflow: MySQL sharding approaches?](https://stackoverflow.com/questions/5541421/mysql-sharding-approaches)\n    - [Why you don’t want to shard](https://www.percona.com/blog/2009/08/06/why-you-dont-want-to-shard/)\n    - [How to Scale Big Data Applications](https://www.percona.com/sites/default/files/presentations/How to Scale Big Data Applications.pdf)\n    - [MySQL Sharding with ProxySQL](https://www.percona.com/blog/2016/08/30/mysql-sharding-with-proxysql/)\n  - 各公司的 Mysql 数据分区经验分享\n    - [MailChimp: Using Shards to Accommodate Millions of Users](https://devs.mailchimp.com/blog/using-shards-to-accommodate-millions-of-users/)\n    - [Uber: Code Migration in Production: Rewriting the Sharding Layer of Uber’s Schemaless Datastore](https://eng.uber.com/schemaless-rewrite/)\n    - [Sharding \u0026 IDs at Instagram](https://instagram-engineering.com/sharding-ids-at-instagram-1cf5a71e5a5c)\n    - [Airbnb: How We Partitioned Airbnb’s Main Database in Two Weeks](https://medium.com/airbnb-engineering/how-we-partitioned-airbnb-s-main-database-in-two-weeks-55f7e006ff21)\n- **更多资源**\n  - [awesome-mysql](https://github.com/jobbole/awesome-mysql-cn) - MySQL 的资源列表\n\n### Nosql 数据库综合\n\n- Martin Fowler 在 YouTube 上分享的 NoSQL 介绍 [Introduction To NoSQL](https://youtu.be/qI_g07C_Q5I)， 以及他参与编写的 [NoSQL Distilled - NoSQL 精粹](https://book.douban.com/subject/25662138/)，这本书才 100 多页，是本难得的关于 NoSQL 的书，很不错，非常易读。\n- [NoSQL Databases: a Survey and Decision Guidance](https://medium.com/baqend-blog/nosql-databases-a-survey-and-decision-guidance-ea7823a822d#.nhzop4d23)，这篇文章可以带你自上而下地从 CAP 原理到开始了解 NoSQL 的种种技术，是一篇非常不错的文章。\n- [Distribution, Data, Deployment: Software Architecture Convergence in Big Data Systems](https://resources.sei.cmu.edu/asset_files/WhitePaper/2014_019_001_90915.pdf)，这是卡内基·梅隆大学的一篇讲分布式大数据系统的论文。其中主要讨论了在大数据时代下的软件工程中的一些关键点，也说到了 NoSQL 数据库。\n- [No Relation: The Mixed Blessings of Non-Relational Databases](http://ianvarley.com/UT/MR/Varley_MastersReport_Full_2009-08-07.pdf)，这篇论文虽然有点年代久远。但这篇论文是 HBase 的基础，你花上一点时间来读读，就可以了解到，对各种非关系型数据存储优缺点的一个很好的比较。\n- [NoSQL Data Modeling Techniques](https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/) ，NoSQL 建模技术。这篇文章我曾经翻译在了 CoolShell 上，标题为 [NoSQL 数据建模技术](https://coolshell.cn/articles/7270.htm)，供你参考。\n  - [MongoDB - Data Modeling Introduction](https://docs.mongodb.com/manual/core/data-modeling-introduction/) ，虽然这是 MongoDB 的数据建模介绍，但是其很多观点可以用于其它的 NoSQL 数据库。\n  - [Firebase - Structure Your Database](https://firebase.google.com/docs/database/android/structure-data) ，Google 的 Firebase 数据库使用 JSON 建模的一些最佳实践。\n- 因为 CAP 原理，所以当你需要选择一个 NoSQL 数据库的时候，你应该看看这篇文档 [Visual Guide to NoSQL Systems](http://blog.nahurst.com/visual-guide-to-nosql-systems)。\n\n选 SQL 还是 NoSQL，这里有两篇文章，值得你看看。\n\n- [SQL vs. NoSQL Databases: What’s the Difference?](https://www.upwork.com/hiring/data/sql-vs-nosql-databases-whats-the-difference/)\n- [Salesforce: SQL or NoSQL](https://engineering.salesforce.com/sql-or-nosql-9eaf1d92545b)\n\n### 列式数据库资料\n\n#### Cassandra 资料\n\n- 沃尔玛实验室有两篇文章值得一读。\n  - [Avoid Pitfalls in Scaling Cassandra Cluster at Walmart](https://medium.com/walmartlabs/avoid-pitfalls-in-scaling-your-cassandra-cluster-lessons-and-remedies-a71ca01f8c04)\n  - [Storing Images in Cassandra at Walmart](https://medium.com/walmartlabs/building-object-store-storing-images-in-cassandra-walmart-scale-a6b9c02af593)\n- [Yelp: How We Scaled Our Ad Analytics with Apache Cassandra](https://engineeringblog.yelp.com/2016/08/how-we-scaled-our-ad-analytics-with-cassandra.html) ，Yelp 的这篇博客也有一些相关的经验和教训。\n- [Discord: How Discord Stores Billions of Messages](https://blog.discordapp.com/how-discord-stores-billions-of-messages-7fa6ec7ee4c7) ，Discord 公司分享的一个如何存储十亿级消息的技术文章。\n- [Cassandra at Instagram](https://www.slideshare.net/DataStax/cassandra-at-instagram-2016) ，Instagram 的一个 PPT，其中介绍了 Instagram 中是怎么使用 Cassandra 的。\n- [Netflix: Benchmarking Cassandra Scalability on AWS - Over a million writes per second](https://medium.com/netflix-techblog/benchmarking-cassandra-scalability-on-aws-over-a-million-writes-per-second-39f45f066c9e) ，Netflix 公司在 AWS 上给 Cassandra 做的一个 Benchmark。\n\n#### HBase 资料\n\n- [Imgur Notification: From MySQL to HBASE](https://medium.com/imgur-engineering/imgur-notifications-from-mysql-to-hbase-9dba6fc44183)\n- [Pinterest: Improving HBase Backup Efficiency](https://medium.com/@Pinterest_Engineering/improving-hbase-backup-efficiency-at-pinterest-86159da4b954)\n- [IBM : Tuning HBase performance](https://www.ibm.com/support/knowledgecenter/en/SSPT3X_2.1.2/com.ibm.swg.im.infosphere.biginsights.analyze.doc/doc/bigsql_TuneHbase.html)\n- [HBase File Locality in HDFS](http://www.larsgeorge.com/2010/05/hbase-file-locality-in-hdfs.html)\n- [Apache Hadoop Goes Realtime at Facebook](http://borthakur.com/ftp/RealtimeHadoopSigmod2011.pdf)\n- [Storage Infrastructure Behind Facebook Messages: Using HBase at Scale](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.294.8459\u0026rep=rep1\u0026type=pdf)\n- [GitHub: Awesome HBase](https://github.com/rayokota/awesome-hbase)\n\n针对于 HBase 有两本书你可以考虑一下。\n\n- 首先，先推荐两本书，一本是偏实践的《[HBase 实战](https://book.douban.com/subject/25706541/)》，另一本是偏大而全的手册型的《[HBase 权威指南](https://book.douban.com/subject/10748460/)》。\n- 当然，你也可以看看官方的 [The Apache HBase™ Reference Guide](http://hbase.apache.org/0.94/book/book.html)\n- 另外两个列数据库：\n  - [ClickHouse - Open Source Distributed Column Database at Yandex](https://clickhouse.yandex/)\n  - [Scaling Redshift without Scaling Costs at GIPHY](https://engineering.giphy.com/scaling-redshift-without-scaling-costs/)\n\n### KV 数据库资料\n\n#### Redis 资料\n\n- **官网**\n  - [Redis 官网](https://redis.io/)\n  - [Redis github](https://github.com/antirez/redis)\n  - [Redis 官方文档中文版](http://redis.cn/)\n  - [Redis 命令参考](http://redisdoc.com/)\n- **书籍**\n  - [《Redis 实战》](https://item.jd.com/11791607.html)\n  - [《Redis 设计与实现》](https://item.jd.com/11486101.html)\n- **源码**\n  - [《Redis 实战》配套 Python 源码](https://github.com/josiahcarlson/redis-in-action)\n- **资源汇总**\n  - [awesome-redis](https://github.com/JamzyWang/awesome-redis)\n- **Redis Client**\n  - [spring-data-redis 官方文档](https://docs.spring.io/spring-data/redis/docs/1.8.13.RELEASE/reference/html/)\n  - [redisson 官方文档(中文,略有滞后)](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95)\n  - [redisson 官方文档(英文)](https://github.com/redisson/redisson/wiki/Table-of-Content)\n  - [CRUG | Redisson PRO vs. Jedis: Which Is Faster? 翻译](https://www.jianshu.com/p/82f0d5abb002)\n  - [redis 分布锁 Redisson 性能测试](https://blog.csdn.net/everlasting_188/article/details/51073505)\n- **文章**\n  - [Learn Redis the hard way (in production) at Trivago](http://tech.trivago.com/2017/01/25/learn-redis-the-hard-way-in-production/)\n  - [Twitter: How Twitter Uses Redis To Scale - 105TB RAM, 39MM QPS, 10,000+ Instances](http://highscalability.com/blog/2014/9/8/how-twitter-uses-redis-to-scale-105tb-ram-39mm-qps-10000-ins.html)\n  - [Slack: Scaling Slack’s Job Queue - Robustly Handling Billions of Tasks in Milliseconds Using Kafka and Redis](https://slack.engineering/scaling-slacks-job-queue-687222e9d100)\n  - [GitHub: Moving persistent data out of Redis at GitHub](https://githubengineering.com/moving-persistent-data-out-of-redis/)\n  - [Instagram: Storing Hundreds of Millions of Simple Key-Value Pairs in Redis](https://engineering.instagram.com/storing-hundreds-of-millions-of-simple-key-value-pairs-in-redis-1091ae80f74c)\n  - [Redis in Chat Architecture of Twitch (from 27:22)](https://www.infoq.com/presentations/twitch-pokemon)\n  - [Deliveroo: Optimizing Session Key Storage in Redis](https://deliveroo.engineering/2016/10/07/optimising-session-key-storage.html)\n  - [Deliveroo: Optimizing Redis Storage](https://deliveroo.engineering/2017/01/19/optimising-membership-queries.html)\n  - [GitHub: Awesome Redis](https://github.com/JamzyWang/awesome-redis)\n\n### 文档数据库资料\n\n- [Couchbase Ecosystem at LinkedIn](https://engineering.linkedin.com/blog/2017/12/couchbase-ecosystem-at-linkedin)\n- [SimpleDB at Zendesk](https://medium.com/zendesk-engineering/resurrecting-amazon-simpledb-9404034ec506)\n- [Data Points - What the Heck Are Document Databases?](https://msdn.microsoft.com/en-us/magazine/hh547103.aspx)\n\n#### MongoDB 资料\n\n- **官方**\n  - [MongoDB 官网](https://www.mongodb.com/)\n  - [MongoDB Github](https://github.com/mongodb/mongo)\n  - [MongoDB 官方免费教程](https://university.mongodb.com/)\n- **教程**\n  - [MongoDB 教程](https://www.runoob.com/mongodb/mongodb-tutorial.html)\n  - [MongoDB 高手课](https://time.geekbang.org/course/intro/100040001)\n- **数据**\n  - [mongodb-json-files](https://github.com/ozlerhakan/mongodb-json-files)\n- **文章**\n  - [Introduction to MongoDB](https://www.slideshare.net/mdirolf/introduction-to-mongodb)\n  - [eBay: Building Mission-Critical Multi-Data Center Applications with MongoDB](https://www.mongodb.com/blog/post/ebay-building-mission-critical-multi-data-center-applications-with-mongodb)\n  - [The AWS and MongoDB Infrastructure of Parse: Lessons Learned](https://medium.baqend.com/parse-is-gone-a-few-secrets-about-their-infrastructure-91b3ab2fcf71)\n  - [Migrating Mountains of Mongo Data](https://medium.com/build-addepar/migrating-mountains-of-mongo-data-63e530539952)\n- **更多资源**\n  - [Github: Awesome MongoDB](https://github.com/ramnes/awesome-mongodb)\n\n### 搜索引擎数据库资料\n\n#### ElasticSearch\n\n- **官方**\n  - [Elasticsearch 官网](https://www.elastic.co/cn/products/elasticsearch)\n  - [Elasticsearch Github](https://github.com/elastic/elasticsearch)\n  - [Elasticsearch 官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html)\n  - [Elasticsearch: The Definitive Guide](https://www.elastic.co/guide/en/elasticsearch/guide/master/index.html) - ElasticSearch 官方学习资料\n- **书籍**\n  - [《Elasticsearch 实战》](https://book.douban.com/subject/30380439/)\n- **教程**\n  - [ELK Stack 权威指南](https://github.com/chenryn/logstash-best-practice-cn)\n  - [Elasticsearch 教程](https://www.knowledgedict.com/tutorial/elasticsearch-intro.html)\n- **文章**\n  - [Elasticsearch+Logstash+Kibana 教程](https://www.cnblogs.com/xing901022/p/4704319.html)\n  - [ELK（Elasticsearch、Logstash、Kibana）安装和配置](https://github.com/judasn/Linux-Tutorial/blob/master/ELK-Install-And-Settings.md)\n  - **性能调优相关**的工程实践\n    - [Elasticsearch Performance Tuning Practice at eBay](https://www.ebayinc.com/stories/blogs/tech/elasticsearch-performance-tuning-practice-at-ebay/)\n    - [Elasticsearch at Kickstarter](https://kickstarter.engineering/elasticsearch-at-kickstarter-db3c487887fc)\n    - [9 tips on ElasticSearch configuration for high performance](https://www.loggly.com/blog/nine-tips-configuring-elasticsearch-for-high-performance/)\n    - [Elasticsearch In Production - Deployment Best Practices](https://medium.com/@abhidrona/elasticsearch-deployment-best-practices-d6c1323b25d7)\n- **更多资源**\n  - [GitHub: Awesome ElasticSearch](https://github.com/dzharii/awesome-elasticsearch)\n\n### 图数据库\n\n- 首先是 IBM Devloperworks 上的两个简介性的 PPT。\n  - [Intro to graph databases, Part 1, Graph databases and the CRUD operations](https://www.ibm.com/developerworks/library/cl-graph-database-1/cl-graph-database-1-pdf.pdf)\n  - [Intro to graph databases, Part 2, Building a recommendation engine with a graph database](https://www.ibm.com/developerworks/library/cl-graph-database-2/cl-graph-database-2-pdf.pdf)\n- 然后是一本免费的电子书《[Graph Database](http://graphdatabases.com)》。\n- 接下来是一些图数据库的介绍文章。\n  - [Handling Billions of Edges in a Graph Database](https://www.infoq.com/presentations/graph-database-scalability)\n  - [Neo4j case studies with Walmart, eBay, AirBnB, NASA, etc](https://neo4j.com/customers/)\n  - [FlockDB: Distributed Graph Database for Storing Adjacency Lists at Twitter](https://blog.twitter.com/engineering/en_us/a/2010/introducing-flockdb.html)\n  - [JanusGraph: Scalable Graph Database backed by Google, IBM and Hortonworks](https://architecht.io/google-ibm-back-new-open-source-graph-database-project-janusgraph-1d74fb78db6b)\n  - [Amazon Neptune](https://aws.amazon.com/neptune/)\n\n### 时序数据库\n\n- [What is Time-Series Data \u0026 Why We Need a Time-Series Database](https://blog.timescale.com/what-the-heck-is-time-series-data-and-why-do-i-need-a-time-series-database-dcf3b1b18563)\n- [Time Series Data: Why and How to Use a Relational Database instead of NoSQL](https://blog.timescale.com/time-series-data-why-and-how-to-use-a-relational-database-instead-of-nosql-d0cd6975e87c)\n- [Beringei: High-performance Time Series Storage Engine @Facebook](https://code.facebook.com/posts/952820474848503/beringei-a-high-performance-time-series-storage-engine/)\n- [Introducing Atlas: Netflix’s Primary Telemetry Platform @Netflix](https://medium.com/netflix-techblog/introducing-atlas-netflixs-primary-telemetry-platform-bd31f4d8ed9a)\n- [Building a Scalable Time Series Database on PostgreSQL](https://blog.timescale.com/when-boring-is-awesome-building-a-scalable-time-series-database-on-postgresql-2900ea453ee2)\n- [Scaling Time Series Data Storage - Part I @Netflix](https://medium.com/netflix-techblog/scaling-time-series-data-storage-part-i-ec2b6d44ba39)\n- [Design of a Cost Efficient Time Series Store for Big Data](https://medium.com/@leventov/design-of-a-cost-efficient-time-series-store-for-big-data-88c5dc41af8e)\n- [GitHub: Awesome Time-Series Database](https://github.com/xephonhq/awesome-time-series-database)\n\n## 传送 🚪\n\n◾ 💧 [钝悟的 IT 知识图谱](https://dunwu.github.io/waterdrop/) ◾ 🎯 [钝悟的博客](https://dunwu.github.io/blog/) ◾\n","funding_links":[],"categories":["HarmonyOS","Java","Books","资源"],"sub_categories":["Windows Manager","Admin Template \u0026 Component Library","教程"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdunwu%2Fdb-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdunwu%2Fdb-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdunwu%2Fdb-tutorial/lists"}