最全面、最前沿的MySQL干货分享——PPT版

kuwoyinlehe 2016-06-14

前言

PS1: 写在前面:最近比较忙,这篇参会总结一直拖到现在才完成,主要大概把感兴趣的slide按照不同的公司做了个分门别类,方便自己有空再深入的学习阅读。

PS2: 有极个别PPT的链接挂了,过一段时间再刷刷看。

一年一度的Percona Live会议如期在美国Santa Clara会展中心举行,这里聚集了最全面的MySQL社区最前沿的Topic,大量MySQL社区的大神参与该会议。与往年不同,本年度的Percona Live会议全名为“Percona Live Data Performance Conference”,不仅仅包含MySQL主题,还包含了NOSQL, 云计算,大数据等方面的主题。

先说说第一点印象,很多人都在讨论Facebook的MyRock和RockDB,会议期间有多个相关的主题以及一个专门的keynote。Facebook在推广MyRock持有非常开放的态度,所有的源码开发都是在外部的github上进行的,社区的大量使用可以带来软件的进一步成熟,进而反哺其本身的业务。同时Facebook作为本次会议的赞助商之一,设置了自己的展台,全员开发组出动,向其他从业者介绍MyRock及RockDB。

Oracle 有多个主要开发人员参加了这次会议,主要分享集中在宣传MySQL5.7的新特性。有一个meetup讨论了下一个版本的需求,据称下一个版本直接就叫MySQL8.0了...

Percona作为东道主,贡献了最多的技术分享,主要还是集中在性能调优,优化建议方案,另外Percona的CEO也有几场干货满满的演讲,例如InnoDB的内部架构以及关于数据压缩的一些分享。

其他也有大量的互联网公司,技术服务及大数据公司参与了此次会议,分享的内容五花八门。

以下是我列出的本次会议个人觉得有点意思的一些topic,并没有列出全部,感兴趣的自行到官网查阅下载。

Oracle MySQL开发组

The Exciting MySQL 5.7 Replication Enhancements

MySQL开发组成员分享MySQL的复制架构,5.7新版本的主要优化等内容:

运维

  • 在线启停GTID。

  • 在线配置Replication Filter,无需重启。

  • Change Master到另外一个主库无需停止apply线程。

  • Change Master修改一些日志apply属性(例如master_delay)无需停止IO线程。

  • 增加大量Performance Schema表用于监控复制。

新特性

  • Loss-less Semi-sync Replication: 允许在事务提交前等待备库ACK。

  • Semisync允许配置成主库等待N个ACK才继续提交,增加可用性。

  • 存储GTID信息到系统表中,这样备库如果无级联的话,就可以直接关闭备库的binlog。

  • Multi-source Replication:允许从多个主库复制数据到一台备库上。

  • Group Replication Plugin,多主结构的集群管理插件。

性能

  • 更好的复制性能(logical_clock):在主库上能够并发的事务,通过利用Group Commit在日志中被标记为能在备库并发执行。从而获得更好的并发apply效率。

  • Binlog Dump线程不受Lock_log锁影响,预分配并重用用于读取log event的内存。

  • 独立的ACK线程,用于处理semisync打开场景下备库返还的ack,保证在等待网络时不阻塞binlog dump线程,提升了整体并发度。

Download Slides

Introducing the MySQL Document Store

介绍了MySQL5.7在GA之后释放的一个新特效: Document Store。其定义了一套新的接口,实现了X PLUGIN及对应的通信协议。通过Document Store,用户可以像MongoDB那样来操作MySQL。你也可以阅读我的另外一篇博文来了解相关知识。

Download Slides

MySQL Query Optimizer Overview

介绍MySQL的优化器如何工作,优化器架构,如何基于开销进行查询优化,和查询计划选择。

对优化器感兴趣的同学强烈建议阅读,干货非常足!

Download Slides

Innodb 5.7 Features & Highlights

Sunny Brain介绍了MySQL5.7在InnoDB层做的一些性能优化和新的特性。

性能优化:

  • 事务:事务对象池;优化读写事务链表扫描为Memcpy; 移除只读事务链表;Cache Read view; 隐式锁转换优化以减少大锁持有时间; 事务优先级;

  • 临时表:独立临时表表空间;独立undo;不记录redo; 不做fsync; 使用innoDB临时表作为优化器的中间结果表;

  • Buffer Pool: 多个page cleaner线程;更高效的flush策略;

  • Redo Log: 通过padding修复read-on-write的问题;默认CRC32 checksum; 增加日志格式的版本信息;

  • Memcached: 修复一系列的性能瓶颈;

  • 索引锁,增加SX锁类型,允许索引分裂时的读负载;

  • TRUNCATE操作通过文件日志保证原子性;

  • Index Rename及修改varchar长度可以立刻完成;

  • 自底向上的索引创建,效率更高;

  • AHI分区。

新特性:

  • 分区表: 下推到引擎层,可以减少内存分配,并为未来的并发查询、外键和全文索引支持打下基础; 支持IMPORT/EXPORT。

  • General tablespace: 支持多个表存储到一个Ibd文件中。

  • Buffer pool: 可以在线resize。

  • Undo: 在打开独立undo表空间时,支持undo文件的truncate操作。

  • 更大的page size,开始支持32k及64k的page。

  • Spatial Index/GIS:支持更完整的GIS特性;InnoDB R-TREE实现。

  • Virtual Column: 支持虚拟列及在虚拟列上创建索引。

  • 数据文件加密。

  • 全文索引: 对中文更友好的分词插件。

  • 其他: transparent page compression; Sandisk/FusionIO Atomic Writes; 允许更大的index prefix。

  • Performance schema: 监控内存分配;监控DDL执行过程。

Download Slides

Performance schema and sys schema in MySQL 5.7

介绍MySQL5.7 Performance Schema,以及基于Performance Schema及Information_Schema构建的视图集合sys schema。个人非常喜欢这套视图,非常便于发现系统问题及性能瓶颈。

Download Slides

A MySQL Sys Schema Deep Dive

Sys Schema的深入介绍

Download Slides

High Availability Using MySQL Group Replication

MySQL Group Replication,是MySQL官方出品的一组插件,用于管理多点写入的集群,可多点写入,自动冲突检测,集群自动同步和恢复等等。不过还没GA,感兴趣的可以自己玩一下。

Download Slides

MySQL Router: New High Availability Building Block

官方出品HA及负载均衡方案,可和另外一个工具Fabric结合使用。

Download Slides

MySQL Performance: Scalability & Benchmarks

MySQL性能测试

Download Slides

What's New in MySQL

概览了5.7的一些新特性(不全面),以及booking部署MySQL5.7的一些经验。

Download Slides

Optimizer: What’s New in 5.7, JSON and More.....

MySQL5.7的优化器

Download Slides

MySQL Document Store: Under the Hood

介绍MySQL最新出的document store,提供了X PLUGIN及新的协议,允许用户像使用mongodb那样使用mysql。

Download Slides

MySQL Performance: Demystified Tuning & Scalability

Mysql性能测试,分析及调优

Download Slides

Percona

Architecture and Performance Optimization for MySQL 5.7

Percona CEO主讲,介绍了InnoDB的主要架构,关键配置,物理文件存储,内存结构, 锁系统,MVCC等等方方面面的内容,对InnoDB感兴趣的同学推荐一读。

还顺带介绍了Percona及MariaDB所做的一些改进。

Download Slides

TokuDB: Stories from the Battlefield

演讲者为Percona的CTO Vadim,主要介绍了Tokudb的Fratal Tree的实现。由于现在Percona已经收购了Tokudb,你可以从发布的Percona Server上直接使用Tokudb存储引擎。

Slides由介绍b-tree的优缺点引出fractal tree,介绍了其内部的数据组织结构,tokudb的一些参数建议,以及PerconaFT相关的一些内核实现。

Download Slides

Schema Review 101: How and What You Should Be Looking at

关于Schema Design之类,适合DBA同学阅读。

Download Slides

MySQL and Ceph

介绍了Ceph的架构,以及基于其上调优MySQL。

Download Slides

另外几个和Ceph相关的slide:

Download Slides

Download Slides

Download Slides

MySQL Performance Troubleshooting Best Practices

Trouble Shoutting最佳实践

Download Slides

Preventing and Resolving MySQL Downtime

常见的产生宕机时间的场景,以及解决方案;性能问题排查。

Download Slides

Compression for Open Source Databases

介绍开源数据库的各种压缩方案。

Download Slides

MySQL 5.7 and MongoDB: Geospatial Introduction

介绍了MySQL5.7的GIS及MongoDB的GIS, 一些示例。

Download Slides

Cost Optimizations Through MySQL Performance Optimizations

基于例子给出一些性能优化建议,随便看看

Download Slides

Percona XtraDB Cluster Reference Architecture 2016

Percona XtraDB Cluster,不知道有没人用,反正我没玩过...这篇slide介绍了如何设置cluster,并介绍了一些内部实现,例如异步slave,proxy,负载均衡,备份及监控。

Download Slides

Using Apache Spark and MySQL for Data Analysis

介绍如何使用Apache Spark集合MySQL来做数据分析

Download Slides

Performance Schema for MySQL Troubleshooting

使用Performance Schema来排查问题

Download Slides

Top Most-Overlooked MySQL Performance Optimizations

讨论了从硬件选择,配置,索引到表设计及架构,各个方面的优化点

Download Slides

Solid State Storage for your MySQL Databases: What you need to Know to Optimize Performance

Percona的CTO Vadim介绍了关于底层存储的一些分享

  • Flash设备的架构

  • AHCI vs NVMe

  • 不同的存储硬件产品

对硬件不太懂,有空再看看

Download Slides

Galera Replication Demystified: How Does It Work?

介绍Galera的复制原理的,没了解过

Download Slides

To Shard or Not to Shard

To shard or not to shard, that's a question...来自Percona CEO的又一分享。

Download Slides

Amazon Aurora: the Benefits and the Drawbacks

  • Aurora的架构设计介绍: Aurora是AWS基于InnoDB之上的深度定制。存储和数据分离;在存储上独立使用日志进行异步apply,因此计算节点无需写数据文件,只需要传递redo日志;可自由扩展读节点。类似Oracle RAC的实现。

  • Redo log: 1. replica节点使用redo更新内存内的page;2. 失效Query Cache;3.目标存储上异步的进行日志apply。

  • 其他:thread pool; buffer pool warmup;快速崩溃恢复;Fast ordered insert。

  • 缺点: 不支持change buffer; 写入性能受网络影响(需要传递redo消息);

  • 性能测试。

Download Slides

MySQL Multi-Source Replication

多源复制,包括Mariadb及MySQL各自的使用介绍

Download Slides

XtraDB 5.7: Key Performance Algorithms

Percona对MySQL5.7 InnoDB的性能优化,例如multi lru flush, split double write buffer

Implementing Multi-Source Replication With MySQL 5.7 @ Verisure (and How We Got There)

5.7多源复制

Amazon

Introducing Amazon Aurora: A New MySQL-Compatible Database

AWS的VP介绍Aurora,测试数据,及一些比较上层的实现架构。

Download Slides

Facebook

The highs and lows of semi-synchronous replication

  • 介绍了异步/同步/半同步复制

  • Fb-mysql让mysqlbinlog支持semisync,如何做高可用,如何恢复老主库

Download Slides

MyRocks, MongoRocks and RocksDB

Mark Callaghan的keynote演讲。介绍rockdb,及其衍生组件myrocks及mongorocks的优势和特点。

Download Slides

MyRocks Internals

实际上这是Memsql的工程师的分享,但因为MyRock是Facebook开发的,所以放在这一栏。大概介绍了些概念性的内容。

Download Slides

MyRocks Deep Dive: Flash Optimized LSM Database for MySQL, and its Use Case at Facebook

Rockdb及MyRock的深度介绍,想了解其底层实现,这篇slide是必读的,干货满满。

Download Slides

RocksDB: Key-Value Store Optimized for Flash-Based SSD

介绍Rockdb的设计和架构,同样是满满干货, 后面有时间再慢慢研究

Download Slides

Mariadb

MariaDB 10.1- what’s new

MariaDB 10.1特性介绍

Download Slides

Window functions in MariaDB

MariaDB的window function实现,MariaDB在server层一如既往的走在前面

Download Slides

谷歌

Vitess: The Complete Story

Youtube的分布式中间件Vitess介绍

Download Slides

Not Just a Bunch of Disks: Storage Architecture of Google Cloud SQL

暂无PPT,主要是Google云在底层文件存储层的一些特性。

Twitter

InnoDB as backend of Manhattan - Twitter's distributed database

介绍Twitter的底层存储解决方案(MHBtree),基于其业务特点定制,MySQL实际上被当成了kv引擎,使用特定的协议,通过一个插件直接访问Handler。这个架构还蛮有意思的,例如

  • 做了基于时间戳的行级别冲突检测

  • 热点key更新: 发现到热点Key行锁拿不到时,返回插件cache请求

  • 通过大量的代码hack,实现了InnoDB表级一致性快照的备份。解决了传统物理备份需要备份整库的问题

Download Slides

Linkedin

Espresso: LinkedIn's distributed document store on top of MySQL

介绍Linkedin的分布式NoSQL系统,其架构在MySQL之上。加上一堆组件,例如apache helix, router, api server, kafka等等. MySQL只是作为存储节点;

在MySQL层,对GTID的功能进行了扩展,binlog的row event使用snappy进行压缩。

Download Slides

Booking

MySQL Scalability: Dimensions, Methods and Technologies

扩展MySQL策略

Download Slides

Bringing code to the data: from MySQL to RocksDB for high volume searches

从MySQL迁移到RockDB来解决Booking的数据检索问题

Download Slides

MySQL Parallel Replication: inventory, use-case and limitations

MySQL并行复制,老话题

Download Slides

Yelp

几个PPT都挂了,后面再补上

Let Robots Manage your Schema (without destroying all humans)

Download Slides

Clusternaut: Orchestrating Percona XtraDB Cluster with Kubernetes

Download Slides

If You Only Have a Hammer, Everything Looks Like a Thumb

Download Slides

Dropbox

Rolling out Global Transaction IDs at Dropbox

Dropbox使用GTID的分享: 集群管理,MySQL的复制机制,GTID相关的经验例如failover切换,备份等。

Download Slides

Troubleshooting Scenarios with Performance Schema

使用performance schema进行trouble shoutting,老话题了

Download Slides

Github

Reliable crash detection and failover with Orchestrator

使用Orchestrator进行崩溃检测及Failover

Download Slides

Rookie DBA Mistakes: How I Screwed Up So You Don't Have To

DBA的那些事儿

Download Slides

MySQL GTID Implementation, Maintenance, and Best Practices

还是GTID和复制的那些事儿

Download Slides

Intel

Accelerating Ceph for Database Workloads with an all PCIe SSD Cluster

硬件和文件系统都不太懂,*标记了*后面有空再看。

Download Slides

Performance of Percona Server for MySQL on Intel Server Systems using HDD, SATA SSD, and NVMe SSD as Different Storage Mediums

来自Intel公司的分享,在不同硬件环境下的Percona MySQL性能表现,包括 :

(1) a RAID of HDD vs.

(2) a RAID of SATA SSD vs.

(3) a RAID of NVMe SSD。

Download Slides

Increase MySQL Database Performance with Intel® SSD plus Cache Acceleration Software

还是讲硬件的,使用intel的硬件来提升性能神马...

Download Slides

SQL with MySQL, or NoSQL with MongoDB?

介绍了几类不同引擎的优缺点

Download Slides

Alibaba

What's new in AliSQL - Alibaba's branch of MySQL

介绍了Alibaba如何为解决电商业务的高负载、高并发等要求所做的大量源码改进

Download Slides

Physical Replication Based on InnoDB

基于InnoDB的物理复制,之前已经撰文专门讲过,感兴趣的自取

Download Slides

Pinterest

Operational Buddhism: Building Reliable Services From Unreliable Components

基于不可靠组件构建高可靠服务 ?

Download Slides

Zen on MySQL

介绍Pinterest基于MySQL的图片存储系统服务Zen

Download Slides

Linux系统优化

Tuning Linux for Database performance

优化Linux下的各项配置来提升数据库性能

Download Slides

Turtles All the Way Down: Tuning Linux for Database Workloads

Download Slides

Linux Systems Performance

  • 如何观察Linux的各项性能指数,介绍了大量的工具..

  • 性能分析方法论

  • 系统性能测试,使用perf进行性能分析

  • Trace调用栈及性能tunin

个人认为这篇slide非常值得运维人员一读,对于ppt中提到的一些工具可以自己试玩一把,都满实用的

Download Slides

业界其他

Storage Methods for Nonstandard Data Patterns

非标准数据的存储方案,太长了没看

Download Slides

The Language of Compression Benchmarking

演讲者是原Tokudb开发成员,分享了如何对数据库的数据进行压缩:

  • 为什么压缩: 数据的磁盘存储太高,例如SSD

  • 压缩的代价模型:压缩比解压要更困难,通常算法需要去高效的寻找重复串进行编码

  • 压缩算法如何工作

  • block size、碎片化等对空间影响

  • Entropy: High entropy data is less compressible

对压缩理论感兴趣的可以看看。

Download Slides

Technology comparison: MySQL vs SQLite on various devices

介绍SQLite的内部架构,特点,和MySQL从可移植性、并发性能、网络等各个方面进行比较

Download Slides

InnoDB Locking Explained With Stick Figures

InnoDB事务锁

Download Slides

Resurrecting a MySQL Database from the Dead

数据灾难恢复

Download Slides

Backups, restores and clones for fun and profit

备份及恢复测试,ppt没啥内容

Download Slides

MySQL Query Performance Tuning: A 12 Step Program

MySQL查询优化技巧

Download Slides

MySQL and Docker Strategies

通过docket来进行MySQL部署,对在容器中运行mysql感兴趣的可以看看。演讲者是sandbox的作者

Download Slides

Solr: How to index 10 billion phrases from MySQL and HBase

主要介绍了Aphache Solr的一些架构和特性,并使用solr来解决大数据量级别的索引问题,进而解决业务上的即时搜索问题。

Download Slides

MySQL and Impala ecosystem: SQL friendly Hadoop

介绍Apache Impala,以及MySQL和impala的对比。后者主打OLAP,支持PB级数据量级,列式存储,线性扩展。

Download Slides

How SurveyMonkey uses Ansible to manage its MySQL fleet

使用自动化运维工具Ansible来管理Mysql

Download Slides

MySQL Data Recovery with TwinDB Undrop for InnoDB

来自TwinDB的分享,介绍了如何去灾难恢复InnoDB表

  • 介绍了InnoDB的物理数据组织

  • 通过工具mysqlfrm 解析frm文件获取其对应的InnoDB表结构

  • 如何从数据页中离线抢救合法的记录

  • 删除表后的恢复及恢复压缩表,PPT讲的不是很细,你可以从他们的官方博客上获得更多的信息

  • PS: TwinDB提供了在线数据恢复服务,但是是有偿的。价格不算贵

Download Slides

Scaling MySQL: Strategies, Challenges, & A Better Solution

来自Clustrix的分享

  • 介绍如何进行MySQL的Scale,常见scale out/up策略的优缺点

  • 介绍了他们的集群系统ClustrixDB

Download Slides

Apache Ignite - In-Memory Data Fabric

介绍Apache Ignite,不了解

Download Slides

ActorDB - an alternative view of a distributed database

介绍ActorDB,一款兼容MySQL协议的分布式数据库

Download Slides

Introducing CockroachDB: Make Data Easy

CockroachDB, 一个类似Google Spanner的开源数据库。

Download Slides

End-to-end encryption for databases

数据库的数据加密介绍,以及该公司的ZeroDB

Download Slides

Sharding with Spider solutions

使用MySQL存储引擎Spider进行数据库分片。据说spider在腾讯用的比较多,有空研究下。

Download Slides

An efficient way to process a large number of rows with mysql_use_result() or streaming option

通常情况下客户端是使用mysql_store_result先存储结果集,然后再逐行处理。而另外一种方式是mysql_use_result则是逐行在客户端获取再处理,相比前者对客户端的内存占用影响较小。

Download Slides

Running a Galera Cluster in Kubernetes

在Kubernetes(一款Google开源的Docker容器集群管理系统)上运行Galera Cluster

Download Slides

Linux Kernel Extension for Databases

介绍Tempesta DB, 它是linux内核的扩展,实现了内存管理,驱逐,IO机制等。它被设计成承担实时负载,需要数据装进RAM中。

Download Slides

Time series from collection to analysis - examples and use cases

Download Slides

其他

由于我对其他数据库并不了解,这里仅仅列出相关的Slide及摘要链接,感兴趣的自取。

  • Run Your Own Open Source Alternative to Ops Manager to Avoid Vendor Lock-In

Download Slides

  • Updated Sharding Guidelines in MongoDB 3.x with Impacts of Different Storage Engines

Download Slides

  • Running Hadoop on Mesos at Uber

Download Slides

  • A Little Cassandra for the Relational Brain

Download Slides

  • MongoDB Chunks – Distribution, Splitting, and Merging

Download Slides

  • events @ Box: Using HBase as a Message Queue

Download Slides

  • Scylla, a distributed Cassandra-compatible NoSQL database in excess of a million requests per second per node

Download Slides

  • Redis Functions and Data Structures

Download Slides

  • Indexing Strategies and Tips for MongoDB

Download Slides

  • MongoDB Replication and Sharding

Download Slides

  • MongoDB 3.2 - New Features Overview

Download Slides

  • Powering a Realtime Analytics Product: the Ups, the Downs, and Sideways

Download Slides

  • MongoDB on AWS With Minimal Suffering

Download Slides

  • Improving MongoDB with Redis

Download Slides

  • MongoDB Schema Design

Download Slides

  • MongoDB 3.x Storage Engine Internals

Download Slides

  • MongoDB Security

Download Slides

  • How to Automate, Monitor and Manage your MongoDB Servers

Download Slides

  • MongoDB Design Patterns

Download Slides

  • MongoDB Schema Design for the "Dynamic Schema" World

Download Slides

  • MongoDB for MySQL DBA's

Download Slides

  • Deep dive into the native multi-model database ArangoDB

Download Slides

  • Tarantool - a Lua based database engine and in-memory data grid

Download Slides

  • Druid: Power Interactive Applications at Scale

    Download Slides

以上为“MySQL”全部内容,由于无法添加链接,欲下载所有PPT,请关注云栖社区微信公众号:yunqiinsight,并回复“MySQL”。

相关推荐