DB-TUTORIAL DB-TUTORIAL
数据库综合
数据库中间件
  • 综合
  • Mysql
  • 其他
  • MongoDB
  • Redis
  • Elasticsearch
  • Elastic技术栈
GitHub (opens new window)
数据库综合
数据库中间件
  • 综合
  • Mysql
  • 其他
  • MongoDB
  • Redis
  • Elasticsearch
  • Elastic技术栈
GitHub (opens new window)

DB-TUTORIAL

☕ db-tutorial 是一个数据库教程。

star fork build code style

💾 db-tutorial 是一个数据库教程。

  • 🔁 项目同步维护:Github (opens new window) | Gitee (opens new window)
  • 📖 电子书阅读:Github Pages (opens new window) | Gitee Pages (opens new window)

# 数据库综合

# 分布式存储原理

# 分布式理论

  • 分布式一致性 (opens new window)
  • 深入剖析共识性算法 Paxos (opens new window)
  • 深入剖析共识性算法 Raft (opens new window)
  • 分布式算法 Gossip (opens new window)

# 分布式关键技术

# 流量调度
  • 流量控制 (opens new window)
  • 负载均衡 (opens new window)
  • 服务路由 (opens new window)
  • 分布式会话基本原理 (opens new window)
# 数据调度
  • 缓存基本原理 (opens new window)
  • 读写分离基本原理 (opens new window)
  • 分库分表基本原理 (opens new window)
  • 分布式 ID 基本原理 (opens new window)
  • 分布式事务基本原理 (opens new window)
  • 分布式锁基本原理 (opens new window)

# 其他

  • Nosql 技术选型
  • 数据结构与数据库索引

# 数据库中间件

  • ShardingSphere 简介
  • ShardingSphere Jdbc
  • 版本管理中间件 Flyway

# 关系型数据库

关系型数据库 整理主流关系型数据库知识点。

# 关系型数据库综合

  • 关系型数据库面试总结 💯
  • SQL 语法基础特性
  • SQL 语法高级特性
  • 扩展 SQL
  • SQL Cheat Sheet

# Mysql

img

  • Mysql 应用指南 ⚡
  • Mysql 工作流 - 关键词:连接、缓存、语法分析、优化、执行引擎、redo log、bin log、两阶段提交
  • Mysql 事务 - 关键词:ACID、AUTOCOMMIT、事务隔离级别、死锁、分布式事务
  • Mysql 锁 - 关键词:乐观锁、表级锁、行级锁、意向锁、MVCC、Next-key 锁
  • Mysql 索引 - 关键词:Hash、B 树、聚簇索引、回表
  • Mysql 性能优化
  • Mysql 运维 🔨
  • Mysql 配置 🔨
  • Mysql 问题

# 其他

  • PostgreSQL 应用指南
  • H2 应用指南
  • SqLite 应用指南

# 文档数据库

# MongoDB

MongoDB 是一个基于文档的分布式数据库,由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系型数据库和非关系型数据库之间的产品。它是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。

MongoDB 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

  • MongoDB 应用指南
  • MongoDB 的 CRUD 操作
  • MongoDB 聚合操作
  • MongoDB 事务
  • MongoDB 建模
  • MongoDB 建模示例
  • MongoDB 索引
  • MongoDB 复制
  • MongoDB 分片
  • MongoDB 运维

# KV 数据库

# Redis

img

  • 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

  • HBase 快速入门
  • HBase 数据模型
  • HBase Schema 设计
  • HBase 架构
  • HBase Java API 基础特性
  • HBase Java API 高级特性之过滤器
  • HBase Java API 高级特性之协处理器
  • HBase Java API 其他高级特性
  • HBase 运维
  • HBase 命令

# 搜索引擎数据库

# Elasticsearch

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 快速入门
  • Elastic 技术栈之 Filebeat
  • Filebeat 运维
  • Elastic 技术栈之 Kibana
  • Kibana 运维
  • Elastic 技术栈之 Logstash
  • Logstash 运维

# 资料 📚

# 数据库综合资料

  • DB-Engines (opens new window) - 数据库流行度排名
  • 书籍
    • 《数据密集型应用系统设计》 (opens new window) - 这可能是目前最好的分布式存储书籍,强力推荐【进阶】
  • 教程
    • CMU 15445 数据库基础课程 (opens new window)
    • CMU 15721 数据库高级课程 (opens new window)
    • 检索技术核心 20 讲 (opens new window) - 极客教程【进阶】
    • 后端存储实战课 (opens new window) - 极客教程【入门】:讲解存储在电商领域的种种应用和一些基本特性
  • 论文
    • Efficiency in the Columbia Database Query Optimizer (opens new window)
    • How Good Are Query Optimizers, Really? (opens new window)
    • Architecture of a Database System (opens new window)
    • Data Structures for Databases (opens new window)
  • 文章
    • Data Structures and Algorithms for Big Databases (opens new window)

# 关系型数据库资料

  • 综合资料
    • 《数据库的索引设计与优化》 (opens new window)
    • 《SQL 必知必会》 (opens new window) - SQL 的基本概念和语法【入门】
  • Oracle 资料
    • 《Oracle Database 9i/10g/11g 编程艺术》 (opens new window)

# Mysql 资料

  • 官方
    • Mysql 官网 (opens new window)
    • Mysql 官方文档 (opens new window)
    • 官方 PPT
      • How to Analyze and Tune MySQL Queries for Better Performance (opens new window)
      • MySQL Performance Tuning 101 (opens new window)
      • MySQL Performance Schema & Sys Schema (opens new window)
      • MySQL Performance: Demystified Tuning & Best Practices (opens new window)
      • MySQL Security Best Practices (opens new window)
      • MySQL Cluster Deployment Best Practices (opens new window)
      • MySQL High Availability with InnoDB Cluster (opens new window)
  • 书籍
    • 《高性能 MySQL》 (opens new window) - 经典,适合 DBA 或作为开发者的参考手册【进阶】
    • 《MySQL 技术内幕:InnoDB 存储引擎》 (opens new window)
    • 《MySQL 必知必会》 (opens new window) - Mysql 的基本概念和语法【入门】
  • 教程
    • runoob.com MySQL 教程 (opens new window) - 入门级 SQL 教程
    • mysql-tutorial (opens new window)
  • 文章
    • MySQL 索引背后的数据结构及算法原理 (opens new window)
    • Some study on database storage internals (opens new window)
    • Sharding Pinterest: How we scaled our MySQL fleet (opens new window)
    • Guide to MySQL High Availability (opens new window)
    • Choosing MySQL High Availability Solutions (opens new window)
    • High availability with MariaDB TX: The definitive guide (opens new window)
    • Mysql 相关经验
      • Booking.com: Evolution of MySQL System Design (opens new window) ,Booking.com 的 MySQL 数据库使用的演化,其中有很多不错的经验分享,我相信也是很多公司会遇到的的问题。
      • Tracking the Money - Scaling Financial Reporting at Airbnb (opens new window) ,Airbnb 的数据库扩展的经验分享。
      • Why Uber Engineering Switched from Postgres to MySQL (opens new window) ,无意比较两个数据库谁好谁不好,推荐这篇 Uber 的长文,主要是想让你从中学习到一些经验和技术细节,这是一篇很不错的文章。
    • Mysql 集群复制
      • Monitoring Delayed Replication, With A Focus On MySQL (opens new window)
      • Mitigating replication lag and reducing read load with freno (opens new window)
      • Better Parallel Replication for MySQL (opens new window)
      • Evaluating MySQL Parallel Replication Part 2: Slave Group Commit (opens new window)
      • Evaluating MySQL Parallel Replication Part 3: Benchmarks in Production (opens new window)
      • Evaluating MySQL Parallel Replication Part 4: More Benchmarks in Production (opens new window)
      • Evaluating MySQL Parallel Replication Part 4, Annex: Under the Hood (opens new window)
    • Mysql 数据分区
      • StackOverflow: MySQL sharding approaches? (opens new window)
      • Why you don’t want to shard (opens new window)
      • [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 (opens new window)
    • 各公司的 Mysql 数据分区经验分享
      • MailChimp: Using Shards to Accommodate Millions of Users (opens new window)
      • Uber: Code Migration in Production: Rewriting the Sharding Layer of Uber’s Schemaless Datastore (opens new window)
      • Sharding & IDs at Instagram (opens new window)
      • Airbnb: How We Partitioned Airbnb’s Main Database in Two Weeks (opens new window)
  • 更多资源
    • awesome-mysql (opens new window) - MySQL 的资源列表

# Nosql 数据库综合

  • Martin Fowler 在 YouTube 上分享的 NoSQL 介绍 Introduction To NoSQL (opens new window), 以及他参与编写的 NoSQL Distilled - NoSQL 精粹 (opens new window),这本书才 100 多页,是本难得的关于 NoSQL 的书,很不错,非常易读。
  • NoSQL Databases: a Survey and Decision Guidance (opens new window),这篇文章可以带你自上而下地从 CAP 原理到开始了解 NoSQL 的种种技术,是一篇非常不错的文章。
  • Distribution, Data, Deployment: Software Architecture Convergence in Big Data Systems (opens new window),这是卡内基·梅隆大学的一篇讲分布式大数据系统的论文。其中主要讨论了在大数据时代下的软件工程中的一些关键点,也说到了 NoSQL 数据库。
  • No Relation: The Mixed Blessings of Non-Relational Databases (opens new window),这篇论文虽然有点年代久远。但这篇论文是 HBase 的基础,你花上一点时间来读读,就可以了解到,对各种非关系型数据存储优缺点的一个很好的比较。
  • NoSQL Data Modeling Techniques (opens new window) ,NoSQL 建模技术。这篇文章我曾经翻译在了 CoolShell 上,标题为 NoSQL 数据建模技术 (opens new window),供你参考。
    • MongoDB - Data Modeling Introduction (opens new window) ,虽然这是 MongoDB 的数据建模介绍,但是其很多观点可以用于其它的 NoSQL 数据库。
    • Firebase - Structure Your Database (opens new window) ,Google 的 Firebase 数据库使用 JSON 建模的一些最佳实践。
  • 因为 CAP 原理,所以当你需要选择一个 NoSQL 数据库的时候,你应该看看这篇文档 Visual Guide to NoSQL Systems (opens new window)。

选 SQL 还是 NoSQL,这里有两篇文章,值得你看看。

  • SQL vs. NoSQL Databases: What’s the Difference? (opens new window)
  • Salesforce: SQL or NoSQL (opens new window)

# 列式数据库资料

# Cassandra 资料

  • 沃尔玛实验室有两篇文章值得一读。
    • Avoid Pitfalls in Scaling Cassandra Cluster at Walmart (opens new window)
    • Storing Images in Cassandra at Walmart (opens new window)
  • Yelp: How We Scaled Our Ad Analytics with Apache Cassandra (opens new window) ,Yelp 的这篇博客也有一些相关的经验和教训。
  • Discord: How Discord Stores Billions of Messages (opens new window) ,Discord 公司分享的一个如何存储十亿级消息的技术文章。
  • Cassandra at Instagram (opens new window) ,Instagram 的一个 PPT,其中介绍了 Instagram 中是怎么使用 Cassandra 的。
  • Netflix: Benchmarking Cassandra Scalability on AWS - Over a million writes per second (opens new window) ,Netflix 公司在 AWS 上给 Cassandra 做的一个 Benchmark。

# HBase 资料

  • Imgur Notification: From MySQL to HBASE (opens new window)
  • Pinterest: Improving HBase Backup Efficiency (opens new window)
  • IBM : Tuning HBase performance (opens new window)
  • HBase File Locality in HDFS (opens new window)
  • Apache Hadoop Goes Realtime at Facebook (opens new window)
  • Storage Infrastructure Behind Facebook Messages: Using HBase at Scale (opens new window)
  • GitHub: Awesome HBase (opens new window)

针对于 HBase 有两本书你可以考虑一下。

  • 首先,先推荐两本书,一本是偏实践的《HBase 实战 (opens new window)》,另一本是偏大而全的手册型的《HBase 权威指南 (opens new window)》。
  • 当然,你也可以看看官方的 The Apache HBase™ Reference Guide (opens new window)
  • 另外两个列数据库:
    • ClickHouse - Open Source Distributed Column Database at Yandex (opens new window)
    • Scaling Redshift without Scaling Costs at GIPHY (opens new window)

# KV 数据库资料

# Redis 资料

  • 官网
    • Redis 官网 (opens new window)
    • Redis github (opens new window)
    • Redis 官方文档中文版 (opens new window)
    • Redis 命令参考 (opens new window)
  • 书籍
    • 《Redis 实战》 (opens new window)
    • 《Redis 设计与实现》 (opens new window)
  • 源码
    • 《Redis 实战》配套 Python 源码 (opens new window)
  • 资源汇总
    • awesome-redis (opens new window)
  • Redis Client
    • spring-data-redis 官方文档 (opens new window)
    • redisson 官方文档(中文,略有滞后) (opens new window)
    • redisson 官方文档(英文) (opens new window)
    • CRUG | Redisson PRO vs. Jedis: Which Is Faster? 翻译 (opens new window)
    • redis 分布锁 Redisson 性能测试 (opens new window)
  • 文章
    • Learn Redis the hard way (in production) at Trivago (opens new window)
    • Twitter: How Twitter Uses Redis To Scale - 105TB RAM, 39MM QPS, 10,000+ Instances (opens new window)
    • Slack: Scaling Slack’s Job Queue - Robustly Handling Billions of Tasks in Milliseconds Using Kafka and Redis (opens new window)
    • GitHub: Moving persistent data out of Redis at GitHub (opens new window)
    • Instagram: Storing Hundreds of Millions of Simple Key-Value Pairs in Redis (opens new window)
    • Redis in Chat Architecture of Twitch (from 27:22) (opens new window)
    • Deliveroo: Optimizing Session Key Storage in Redis (opens new window)
    • Deliveroo: Optimizing Redis Storage (opens new window)
    • GitHub: Awesome Redis (opens new window)

# 文档数据库资料

  • Couchbase Ecosystem at LinkedIn (opens new window)
  • SimpleDB at Zendesk (opens new window)
  • Data Points - What the Heck Are Document Databases? (opens new window)

# MongoDB 资料

  • 官方
    • MongoDB 官网 (opens new window)
    • MongoDB Github (opens new window)
    • MongoDB 官方免费教程 (opens new window)
  • 教程
    • MongoDB 教程 (opens new window)
    • MongoDB 高手课 (opens new window)
  • 数据
    • mongodb-json-files (opens new window)
  • 文章
    • Introduction to MongoDB (opens new window)
    • eBay: Building Mission-Critical Multi-Data Center Applications with MongoDB (opens new window)
    • The AWS and MongoDB Infrastructure of Parse: Lessons Learned (opens new window)
    • Migrating Mountains of Mongo Data (opens new window)
  • 更多资源
    • Github: Awesome MongoDB (opens new window)

# 搜索引擎数据库资料

# ElasticSearch

  • 官方
    • Elasticsearch 官网 (opens new window)
    • Elasticsearch Github (opens new window)
    • Elasticsearch 官方文档 (opens new window)
    • Elasticsearch: The Definitive Guide (opens new window) - ElasticSearch 官方学习资料
  • 书籍
    • 《Elasticsearch 实战》 (opens new window)
  • 教程
    • ELK Stack 权威指南 (opens new window)
    • Elasticsearch 教程 (opens new window)
  • 文章
    • Elasticsearch+Logstash+Kibana 教程 (opens new window)
    • ELK(Elasticsearch、Logstash、Kibana)安装和配置 (opens new window)
    • 性能调优相关的工程实践
      • Elasticsearch Performance Tuning Practice at eBay (opens new window)
      • Elasticsearch at Kickstarter (opens new window)
      • 9 tips on ElasticSearch configuration for high performance (opens new window)
      • Elasticsearch In Production - Deployment Best Practices (opens new window)
  • 更多资源
    • GitHub: Awesome ElasticSearch (opens new window)

# 图数据库

  • 首先是 IBM Devloperworks 上的两个简介性的 PPT。
    • Intro to graph databases, Part 1, Graph databases and the CRUD operations (opens new window)
    • Intro to graph databases, Part 2, Building a recommendation engine with a graph database (opens new window)
  • 然后是一本免费的电子书《Graph Database (opens new window)》。
  • 接下来是一些图数据库的介绍文章。
    • Handling Billions of Edges in a Graph Database (opens new window)
    • Neo4j case studies with Walmart, eBay, AirBnB, NASA, etc (opens new window)
    • FlockDB: Distributed Graph Database for Storing Adjacency Lists at Twitter (opens new window)
    • JanusGraph: Scalable Graph Database backed by Google, IBM and Hortonworks (opens new window)
    • Amazon Neptune (opens new window)

# 时序数据库

  • What is Time-Series Data & Why We Need a Time-Series Database (opens new window)
  • Time Series Data: Why and How to Use a Relational Database instead of NoSQL (opens new window)
  • Beringei: High-performance Time Series Storage Engine @Facebook (opens new window)
  • Introducing Atlas: Netflix’s Primary Telemetry Platform @Netflix (opens new window)
  • Building a Scalable Time Series Database on PostgreSQL (opens new window)
  • Scaling Time Series Data Storage - Part I @Netflix (opens new window)
  • Design of a Cost Efficient Time Series Store for Big Data (opens new window)
  • GitHub: Awesome Time-Series Database (opens new window)

# 传送 🚪

◾ 💧 钝悟的 IT 知识图谱 (opens new window) ◾ 🎯 钝悟的博客 (opens new window) ◾

文章分类
数据库 87 列式数据库 13 HBase 12 关系型数据库 21 综合 6 搜索引擎数据库 24 Elasticsearch 16 数据库综合 3 数据库中间件 4 其他 4 更多 ...
热门标签
大数据 HBase API 数据库 列式数据库 关系型数据库 SQL 搜索引擎数据库 Elasticsearch 索引 综合 中间件 Elastic 数据结构 集群 分片 高亮 分词 性能 排序 聚合 查询 分库分表 文档数据库 MongoDB 事务 复制 Mysql FAQ 建模 更多...
Theme by Vdoing | Copyright © 2019-2024 钝悟(dunwu) | CC-BY-SA-4.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×