数据库
...大约 15 分钟
DB-TUTORIAL
💾 db-tutorial 是一个数据库教程。
- 🔁 项目同步维护:Github | Gitee
- 📖 电子书阅读:Github Pages | Gitee Pages
目录
数据库综合
数据库中间件
关系型数据库
关系型数据库 整理主流关系型数据库知识点。
MySQL
- MySQL 架构
- MySQL 存储引擎
- MySQL 索引
- MySQL 事务
- MySQL 锁
- MySQL 复制
- MySQL 优化
- MySQL 运维
- MySQL 面试 💯
- MySQL 面试之索引篇 💯
- MySQL 面试之事务和锁篇 💯
文档数据库
MongoDB
MongoDB 是一个基于文档的分布式数据库,由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系型数据库和非关系型数据库之间的产品。它是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。
MongoDB 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
- MongoDB 简介
- MongoDB CRUD
- MongoDB 聚合
- MongoDB 索引
- MongoDB 事务
- MongoDB 建模
- MongoDB 复制
- MongoDB 分片
- MongoDB 运维
- MongoDB 面试 💯
KV 数据库
Redis
- Redis 基本数据类型 - 关键词:
String
、Hash
、List
、Set
、Zset
- Redis 高级数据类型 - 关键词:
BitMap
、HyperLogLog
、Geo
、Stream
- Redis 数据结构 - 关键词:
对象
、SDS
、链表
、字典
、跳表
、整数集合
、压缩列表
- Redis 内存管理 - 关键词:
定时删除
、惰性删除
、定期删除
、LRU
、LFU
- Redis 持久化 - 关键词:
RDB
、AOF
、SAVE
、BGSAVE
、appendfsync
- Redis 事件 - 关键词:
文件事件
、时间事件
- Redis 复制 - 关键词:
SLAVEOF
、SYNC
、PSYNC
、命令传播
、心跳
- Redis 哨兵 - 关键词:
高可用
、监控
、选主
、故障转移
、Raft
- Redis 集群 - 关键词:
高可用
、监控
、选主
、故障转移
、分区
、Raft
、Gossip
- Redis 订阅 - 关键词:
订阅
、SUBSCRIBE
、PSUBSCRIBE
、PUBLISH
、观察者模式
- Redis 独立功能 - 关键词:
事务
、ACID
、MULTI
、EXEC
、DISCARD
、WATCH
- Redis 管道 - 关键词:
Pipeline
- Redis 脚本 - 关键词:
Lua
- Redis 运维 - 关键词:
安装
、配置
、命令
、集群
、客户端
- Redis 实战 - 关键词:
缓存
、分布式锁
、布隆过滤器
- Redis 面试 - 关键词:
面试
- Redis 面试之数据类型篇 - 关键词:
面试
- Redis 面试之应用篇 - 关键词:
面试
Memcached
列式数据库
HBase
- HBase 快速入门
- HBase 数据模型
- HBase Schema 设计
- HBase 架构
- HBase Java API 基础特性
- HBase Java API 高级特性
- HBase Java API 高级特性之过滤器
- HBase Java API 高级特性之协处理器
- HBase 运维
- HBase 命令
- HBase 面试 💯
搜索引擎数据库
Elasticsearch
Elasticsearch 是一个基于 Lucene 的搜索和数据分析工具,它提供了一个分布式服务。Elasticsearch 是遵从 Apache 开源条款的一款开源产品,是当前主流的企业级搜索引擎。
- Elasticsearch 简介
- Elasticsearch 存储
- Elasticsearch 搜索(上)
- Elasticsearch 搜索(下)
- Elasticsearch 聚合
- Elasticsearch 分析
- Elasticsearch 集群
- Elasticsearch 优化
- Elasticsearch 运维
- Elasticsearch API
- ElasticSearch API 之 High Level REST Client
- Elasticsearch 面试 💯
Elastic
资料 📚
数据库综合资料
- DB-Engines - 数据库流行度排名
- 书籍
- 《数据密集型应用系统设计》 - 这可能是目前最好的分布式存储书籍,强力推荐【进阶】
- 教程
- CMU 15445 数据库基础课程
- CMU 15721 数据库高级课程
- 检索技术核心 20 讲 - 极客教程【进阶】
- 后端存储实战课 - 极客教程【入门】:讲解存储在电商领域的种种应用和一些基本特性
- 论文
- 文章
关系型数据库资料
- 综合资料
- 《数据库的索引设计与优化》
- 《SQL 必知必会》 - SQL 的基本概念和语法【入门】
- Oracle 资料
MySQL 资料
- 官方
- MySQL 官网
- MySQL 官方文档
- 官方 PPT
- 书籍
- 《高性能 MySQL》 - 经典,适合 DBA 或作为开发者的参考手册【进阶】
- 《MySQL 技术内幕:InnoDB 存储引擎》
- 《MySQL 必知必会》 - MySQL 的基本概念和语法【入门】
- 教程
- MySQL 实战 45 讲
- 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 的资源列表
Nosql 数据库综合
- 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,这里有两篇文章,值得你看看。
列式数据库资料
Cassandra 资料
- 沃尔玛实验室有两篇文章值得一读。
- 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。
HBase 资料
- 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
- 另外两个列数据库:
KV 数据库资料
Redis 资料
- 官网
- 书籍
- 源码
- 资源汇总
- 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?
MongoDB 资料
- 官方
- 书籍
- 教程
- 数据
- 文章
- 更多资源
搜索引擎数据库资料
ElasticSearch
- 官方
- 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 知识图谱 ◾
Powered by Waline v2.15.7