極客時間-左耳聽風-程序員攻略-數據庫
對於數據庫方向,重點就是兩種數據庫,一種是以 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 。
極客時間-左耳聽風-程序員攻略-數據庫