💾 db-tutorial 是一个数据库教程。
- 🔁 项目同步维护:Github | Gitee
 - 📖 电子书阅读:Github Pages | Gitee Pages
 
- 分布式理论 - 关键词:
拜占庭将军、CAP、BASE、错误的分布式假设 - 共识性算法 Paxos - 关键词:
共识性算法 - 共识性算法 Raft - 关键词:
共识性算法 - 分布式算法 Gossip - 关键词:
数据传播 
- 集群
 - 复制
 - 分区
 - 选主
 
- 流量控制 - 关键词:
限流、熔断、降级、计数器法、时间窗口法、令牌桶法、漏桶法 - 负载均衡 - 关键词:
轮询、随机、最少连接、源地址哈希、一致性哈希、虚拟 hash 槽 - 服务路由 - 关键词:
路由、条件路由、脚本路由、标签路由 - 服务网关
 - 分布式会话 - 关键词:
粘性 Session、Session 复制共享、基于缓存的 session 共享 
- 数据缓存 - 关键词:
进程内缓存、分布式缓存、缓存雪崩、缓存穿透、缓存击穿、缓存更新、缓存预热、缓存降级 - 读写分离
 - 分库分表 - 关键词:
分片、路由、迁移、扩容、双写、聚合 - 分布式 ID - 关键词:
UUID、自增序列、雪花算法、Leaf - 分布式事务 - 关键词:
2PC、3PC、TCC、本地消息表、MQ 消息、SAGA - 分布式锁 - 关键词:
数据库、Redis、ZooKeeper、互斥、可重入、死锁、容错、自旋尝试 
- 弹性伸缩
 
关系型数据库 整理主流关系型数据库知识点。
- 关系型数据库面试总结 💯
 - SQL Cheat Sheet 是一个 SQL 入门教程。
 - 扩展 SQL 是一个 SQL 入门教程。
 
- Mysql 应用指南 ⚡
 - Mysql 工作流 - 关键词:
连接、缓存、语法分析、优化、执行引擎、redo log、bin log、两阶段提交 - Mysql 事务 - 关键词:
ACID、AUTOCOMMIT、事务隔离级别、死锁、分布式事务 - Mysql 锁 - 关键词:
乐观锁、表级锁、行级锁、意向锁、MVCC、Next-key 锁 - Mysql 索引 - 关键词:
Hash、B 树、聚簇索引、回表 - Mysql 性能优化
 - Mysql 运维 🔨
 - Mysql 配置 🔨
 - Mysql 问题
 
MongoDB 是一个基于文档的分布式数据库,由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系型数据库和非关系型数据库之间的产品。它是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。
MongoDB 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
- MongoDB 应用指南
 - MongoDB 的 CRUD 操作
 - MongoDB 聚合操作
 - MongoDB 事务
 - MongoDB 建模
 - MongoDB 建模示例
 - MongoDB 索引
 - MongoDB 复制
 - MongoDB 分片
 - MongoDB 运维
 
- Redis 面试总结 💯
 - Redis 应用指南 ⚡ - 关键词:
内存淘汰、事件、事务、管道、发布与订阅 - Redis 数据类型和应用 - 关键词:
STRING、HASH、LIST、SET、ZSET、BitMap、HyperLogLog、Geo - Redis 持久化 - 关键词:
RDB、AOF、SAVE、BGSAVE、appendfsync - Redis 复制 - 关键词:
SLAVEOF、SYNC、PSYNC、REPLCONF ACK - Redis 哨兵 - 关键词:
Sentinel、PING、INFO、Raft - Redis 集群 - 关键词:
CLUSTER MEET、Hash slot、MOVED、ASK、SLAVEOF no one、redis-trib - Redis 实战 - 关键词:
缓存、分布式锁、布隆过滤器 - Redis 运维 🔨 - 关键词:
安装、命令、集群、客户端 
HBase 📚 因为常用于大数据项目,所以将其文档和源码整理在 bigdata-tutorial 项目中。
Elasticsearch 是一个基于 Lucene 的搜索和数据分析工具,它提供了一个分布式服务。Elasticsearch 是遵从 Apache 开源条款的一款开源产品,是当前主流的企业级搜索引擎。
- Elasticsearch 面试总结 💯
 - Elasticsearch 快速入门
 - Elasticsearch 简介
 - Elasticsearch 索引
 - Elasticsearch 查询
 - Elasticsearch 高亮
 - Elasticsearch 排序
 - Elasticsearch 聚合
 - Elasticsearch 分析器
 - Elasticsearch 性能优化
 - Elasticsearch Rest API
 - ElasticSearch Java API 之 High Level REST Client
 - Elasticsearch 集群和分片
 - Elasticsearch 运维
 
- Elastic 快速入门
 - Elastic 技术栈之 Filebeat
 - Filebeat 运维
 - Elastic 技术栈之 Kibana
 - Kibana 运维
 - Elastic 技术栈之 Logstash
 - Logstash 运维
 
- DB-Engines - 数据库流行度排名
 - 书籍
- 《数据密集型应用系统设计》 - 这可能是目前最好的分布式存储书籍,强力推荐【进阶】
 
 - 教程
- CMU 15445 数据库基础课程
 - CMU 15721 数据库高级课程
 - 检索技术核心 20 讲 - 极客教程【进阶】
 - 后端存储实战课 - 极客教程【入门】:讲解存储在电商领域的种种应用和一些基本特性
 
 - 论文
 - 文章
 
- 综合资料
- 《数据库的索引设计与优化》
 - 《SQL 必知必会》 - SQL 的基本概念和语法【入门】
 
 - Oracle 资料
 
- 官方
- Mysql 官网
 - Mysql 官方文档
 - 官方 PPT
 
 - 书籍
- 《高性能 MySQL》 - 经典,适合 DBA 或作为开发者的参考手册【进阶】
 - 《MySQL 技术内幕:InnoDB 存储引擎》
 - 《MySQL 必知必会》 - Mysql 的基本概念和语法【入门】
 
 - 教程
- runoob.com MySQL 教程 - 入门级 SQL 教程
 - mysql-tutorial
 
 - 文章
- MySQL 索引背后的数据结构及算法原理
 - Some study on database storage internals
 - Sharding Pinterest: How we scaled our MySQL fleet
 - Guide to MySQL High Availability
 - Choosing MySQL High Availability Solutions
 - High availability with MariaDB TX: The definitive guide
 - Mysql 相关经验
- Booking.com: Evolution of MySQL System Design ,Booking.com 的 MySQL 数据库使用的演化,其中有很多不错的经验分享,我相信也是很多公司会遇到的的问题。
 - Tracking the Money - Scaling Financial Reporting at Airbnb ,Airbnb 的数据库扩展的经验分享。
 - Why Uber Engineering Switched from Postgres to MySQL ,无意比较两个数据库谁好谁不好,推荐这篇 Uber 的长文,主要是想让你从中学习到一些经验和技术细节,这是一篇很不错的文章。
 
 - Mysql 集群复制
- Monitoring Delayed Replication, With A Focus On MySQL
 - Mitigating replication lag and reducing read load with freno
 - Better Parallel Replication for MySQL
 - Evaluating MySQL Parallel Replication Part 2: Slave Group Commit
 - Evaluating MySQL Parallel Replication Part 3: Benchmarks in Production
 - Evaluating MySQL Parallel Replication Part 4: More Benchmarks in Production
 - Evaluating MySQL Parallel Replication Part 4, Annex: Under the Hood
 
 - Mysql 数据分区
- StackOverflow: MySQL sharding approaches?
 - Why you don’t want to shard
 - [How to Scale Big Data Applications](https://www.percona.com/sites/default/files/presentations/How to Scale Big Data Applications.pdf)
 - MySQL Sharding with ProxySQL
 
 - 各公司的 Mysql 数据分区经验分享
 
 - 更多资源
- awesome-mysql - MySQL 的资源列表
 
 
- Martin Fowler 在 YouTube 上分享的 NoSQL 介绍 Introduction To NoSQL, 以及他参与编写的 NoSQL Distilled - NoSQL 精粹,这本书才 100 多页,是本难得的关于 NoSQL 的书,很不错,非常易读。
 - NoSQL Databases: a Survey and Decision Guidance,这篇文章可以带你自上而下地从 CAP 原理到开始了解 NoSQL 的种种技术,是一篇非常不错的文章。
 - Distribution, Data, Deployment: Software Architecture Convergence in Big Data Systems,这是卡内基·梅隆大学的一篇讲分布式大数据系统的论文。其中主要讨论了在大数据时代下的软件工程中的一些关键点,也说到了 NoSQL 数据库。
 - No Relation: The Mixed Blessings of Non-Relational Databases,这篇论文虽然有点年代久远。但这篇论文是 HBase 的基础,你花上一点时间来读读,就可以了解到,对各种非关系型数据存储优缺点的一个很好的比较。
 - NoSQL Data Modeling Techniques ,NoSQL 建模技术。这篇文章我曾经翻译在了 CoolShell 上,标题为 NoSQL 数据建模技术,供你参考。
- MongoDB - Data Modeling Introduction ,虽然这是 MongoDB 的数据建模介绍,但是其很多观点可以用于其它的 NoSQL 数据库。
 - Firebase - Structure Your Database ,Google 的 Firebase 数据库使用 JSON 建模的一些最佳实践。
 
 - 因为 CAP 原理,所以当你需要选择一个 NoSQL 数据库的时候,你应该看看这篇文档 Visual Guide to NoSQL Systems。
 
选 SQL 还是 NoSQL,这里有两篇文章,值得你看看。
- 沃尔玛实验室有两篇文章值得一读。
 - Yelp: How We Scaled Our Ad Analytics with Apache Cassandra ,Yelp 的这篇博客也有一些相关的经验和教训。
 - Discord: How Discord Stores Billions of Messages ,Discord 公司分享的一个如何存储十亿级消息的技术文章。
 - Cassandra at Instagram ,Instagram 的一个 PPT,其中介绍了 Instagram 中是怎么使用 Cassandra 的。
 - Netflix: Benchmarking Cassandra Scalability on AWS - Over a million writes per second ,Netflix 公司在 AWS 上给 Cassandra 做的一个 Benchmark。
 
- Imgur Notification: From MySQL to HBASE
 - Pinterest: Improving HBase Backup Efficiency
 - IBM : Tuning HBase performance
 - HBase File Locality in HDFS
 - Apache Hadoop Goes Realtime at Facebook
 - Storage Infrastructure Behind Facebook Messages: Using HBase at Scale
 - GitHub: Awesome HBase
 
针对于 HBase 有两本书你可以考虑一下。
- 首先,先推荐两本书,一本是偏实践的《HBase 实战》,另一本是偏大而全的手册型的《HBase 权威指南》。
 - 当然,你也可以看看官方的 The Apache HBase™ Reference Guide
 - 另外两个列数据库:
 
- 官网
 - 书籍
 - 源码
 - 资源汇总
 - Redis Client
 - 文章
- Learn Redis the hard way (in production) at Trivago
 - Twitter: How Twitter Uses Redis To Scale - 105TB RAM, 39MM QPS, 10,000+ Instances
 - Slack: Scaling Slack’s Job Queue - Robustly Handling Billions of Tasks in Milliseconds Using Kafka and Redis
 - GitHub: Moving persistent data out of Redis at GitHub
 - Instagram: Storing Hundreds of Millions of Simple Key-Value Pairs in Redis
 - Redis in Chat Architecture of Twitch (from 27:22)
 - Deliveroo: Optimizing Session Key Storage in Redis
 - Deliveroo: Optimizing Redis Storage
 - GitHub: Awesome Redis
 
 
- Couchbase Ecosystem at LinkedIn
 - SimpleDB at Zendesk
 - Data Points - What the Heck Are Document Databases?
 
- 官方
 - 教程
 - 数据
 - 文章
 - 更多资源
 
- 官方
- Elasticsearch 官网
 - Elasticsearch Github
 - Elasticsearch 官方文档
 - Elasticsearch: The Definitive Guide - ElasticSearch 官方学习资料
 
 - 书籍
 - 教程
 - 文章
 - 更多资源
 
- 首先是 IBM Devloperworks 上的两个简介性的 PPT。
 - 然后是一本免费的电子书《Graph Database》。
 - 接下来是一些图数据库的介绍文章。
 
- What is Time-Series Data & Why We Need a Time-Series Database
 - Time Series Data: Why and How to Use a Relational Database instead of NoSQL
 - Beringei: High-performance Time Series Storage Engine @Facebook
 - Introducing Atlas: Netflix’s Primary Telemetry Platform @Netflix
 - Building a Scalable Time Series Database on PostgreSQL
 - Scaling Time Series Data Storage - Part I @Netflix
 - Design of a Cost Efficient Time Series Store for Big Data
 - GitHub: Awesome Time-Series Database
 
◾ 💧 钝悟的 IT 知识图谱 ◾ 🎯 钝悟的博客 ◾
    
