1. 程式人生 > >極客時間-左耳聽風-程序員攻略-數據庫

極客時間-左耳聽風-程序員攻略-數據庫

ssi instagram ado 了解 odin sphere 軟件工程 mongodb mage

對於數據庫方向,重點就是兩種數據庫,一種是以 SQL 為代表的關系型數據庫,另一種是以非 SQL 為代表的 NoSQL 數據庫。關系型數據庫主要有三個:Oracle、MySQL 和 Postgres。

關系型數據庫

Oracle,《Oracle Database 9i/10g/11g 編程藝術》

這本書中深入分析了 Oracle 數據庫體系結構,包括文件、內存結構以及構成 Oracle 數據庫和實例的底層進程,利用具體示例討論了一些重要的數據庫主題,如鎖定、並發控制、事務等。同時分析了數據庫中的物理結構,如表、索引和數據類型,並介紹采用哪些技術能最優地使用這些物理結構。

  • MySQL 官方手冊](https://dev.mysql.com/doc/)。
  • 官方幾個 PPT 。
    • How to Analyze and Tune MySQL Queries for Better Performance
    • MySQL Performance Tuning 101
    • MySQL Performance Schema & Sys Schema
    • MySQL Performance: Demystified Tuning & Best Practices
    • MySQL Security Best Practices
    • MySQL Cluster Deployment Best Practices
    • MySQL High Availability with InnoDB Cluster
  • 《高性能 MySQL》
  • MySQL 的內部原理《MySQL 技術內幕:InnoDB 存儲引擎》。官網的MySQL Internals Manual 。
  • 數據庫的索引設計和優化《數據庫的索引設計與優化》

和 MySQL 相關的文章。

  • 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 的資源列表 Awesome MySQL,這個列表中有很多的工具和開發資源。

MySQL 有兩個比較有名的分支,一個是 Percona,另一個是 MariaDB,其官網上的 Resources 頁面。 Percona Resources、MariaDB Resources ,以及它們的開發博客中也有很多不錯的文章,分別為 Percona Blog 和 MariaDB Blog。

關於 MySQL 的一些相關經驗型的文章。

  • Booking.com: Evolution of MySQL System Design
  • Tracking the Money?-?Scaling Financial Reporting at Airbnb ,Airbnb 的數據庫擴展的經驗分享。
  • Why Uber Engineering Switched from Postgres to MySQL

關於 MySQL 的集群復制。

  • Monitoring Delayed Replication, With A Focus On MySQL
  • Mitigating replication lag and reducing read load with freno
  • Booking.com 一系列的文章:
    • 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
  • MySQL Sharding with ProxySQL

MySQL Sharding 的一些經驗分享。

  • MailChimp: Using Shards to Accommodate Millions of Users
  • Uber: Code Migration in Production: Rewriting the Sharding Layer of Uber’s Schemaless Datastore
  • Sharding & IDs at Instagram
  • Airbnb: How We Partitioned Airbnb’s Main Database in Two Weeks

NoSQL 數據庫

  • NoSQL 介紹 Introduction To NoSQL、 NoSQL Distilled - 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,對各種非關系型數據存儲優缺點的一個很好的比較。
  • NoSQL Data Modeling Techniques ,NoSQL 建模技術。 NoSQL 數據建模技術。
    • MongoDB - Data Modeling Introduction ,雖然這是 MongoDB 的數據建模介紹,但是其很多觀點可以用於其它的 NoSQL 數據庫。
    • Firebase - Structure Your Database ,Google 的 Firebase 數據庫使用 JSON 建模的一些最佳實踐。
  • Visual Guide to NoSQL Systems。

選 SQL 還是 NoSQL,兩篇文章。

  • SQL vs. NoSQL Databases: What’s the Difference?
  • Salesforce: SQL or NoSQL

各種 NoSQL 數據庫

列數據庫 Column Database

  • Cassandra 相關
    • 沃爾瑪實驗室有兩篇文章值得一讀。
      • Avoid Pitfalls in Scaling Cassandra Cluster at Walmart
      • Storing Images in Cassandra at Walmart
    • 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
  • 另外兩個列數據庫:
    • ClickHouse - Open Source Distributed Column Database at Yandex
    • Scaling Redshift without Scaling Costs at GIPHY

文檔數據庫 Document Database - MongoDB, SimpleDB, CouchDB

  • Data Points - What the Heck Are Document Databases?
  • eBay: Building Mission-Critical Multi-Data Center Applications with MongoDB
  • The AWS and MongoDB Infrastructure of Parse: Lessons Learned
  • Migrating Mountains of Mongo Data
  • Couchbase Ecosystem at LinkedIn
  • SimpleDB at Zendesk
  • Github: Awesome MongoDB

數據結構數據庫 Data structure Database - Redis

  • 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

時序數據庫 Time-Series 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

圖數據庫 - Graph Platform

  • 首先是 IBM Devloperworks 上的兩個簡介性的 PPT。
    • Intro to graph databases, Part 1, Graph databases and the CRUD operations
    • Intro to graph databases, Part 2, Building a recommendation engine with a graph database
  • 然後是一本免費的電子書《Graph Database》。
  • 接下來是一些圖數據庫的介紹文章。
    • Handling Billions of Edges in a Graph Database
    • Neo4j case studies with Walmart, eBay, AirBnB, NASA, etc
    • FlockDB: Distributed Graph Database for Storing Adjacency Lists at Twitter
    • JanusGraph: Scalable Graph Database backed by Google, IBM and Hortonworks
    • Amazon Neptune

搜索數據庫 - ElasticSearch

  • Elasticsearch: The Definitive Guide 這是官網方的 ElasticSearch 的學習資料。
  • 4 篇和性能調優相關的工程實踐。
  • Elasticsearch Performance Tuning Practice at eBay
  • Elasticsearch at Kickstarter
  • 9 tips on ElasticSearch configuration for high performance
  • Elasticsearch In Production?-?Deployment Best Practices
  • GitHub 上的資源列表 GitHub: Awesome ElasticSearch 。

極客時間-左耳聽風-程序員攻略-數據庫