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

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

  • 关系型数据库

  • 文档数据库

  • KV数据库

  • 列式数据库

  • 搜索引擎数据库

  • 数据库
dunwu
2022-02-22
目录

数据库

logo

star fork build code style

DB-TUTORIAL

💾 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) ◾

📝 帮助改善此页面! (opens new window)
#数据库
上次更新: 2024/10/09, 07:16:02
最近更新
01
HBase Java API 管理功能
04-13
02
HBase Java API 其他高级特性
03-31
03
HBase 数据模型
03-16
更多文章>
Theme by Vdoing | Copyright © 2019-2024 钝悟(dunwu) | CC-BY-SA-4.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×