作者介绍
卢钧轶,DBAplus社群原创专家,目前就职于Facebook MySQL Infra Team,主要负责大规模MySQL数据库运维。在Failover、备份、监控、优化、数据库私有云等相关领域有一定经验和个人理解,曾先后就职于BesTV和大众点评网。个人博客:http://cenalulu.github.io/
一、MySQL入门书籍和方法分享
背景:各大论坛上总是有很多同学咨询想学习数据库,或者是为入行DBA做些准备。几年来作为一个MySQL DBA的成长过程有一些积累和感悟,特此拿出来和大家分享。
申明:本文原来对每一本书都附上了ppurl的下载链接。无奈该网站由于涉及版权原因闭站了。因此,目前暂不提供书籍链接,待找到好的PDF下载源的时候再补上。大家如果有下载需求可以考虑百度搜索。
1 SQL入门
在准备成为MySQL DBA之前,能熟练的编写SQL是一个必要条件。exists 和 join之间的等价转换;基本的行列转换;SQL 循环等的熟练掌握对之后的运维和调优工作都有很大的帮助。
推荐书籍:
- SQL Cookbook:一本循序渐进的SQL指导手册。每一种业务需求,书中都用MySQL,SQL Server,Oracle三种语法进行解析。可以顺序的作为学习书籍,也可以之后作为工具书籍查阅。
- The Art of SQL:将SQL调优模拟成一场战役,进行战术分析。更多的是传授SQL架构设计方面的知识,实际的调优实例不多,翻译很烂,建议看原版。
- SQL应用重构
- OReilly.MySQL.Stored.Procedure.Programming.Mar.2006.chm:学习MySQL 存储过程语法和编写的最好教材。虽然版本比较老,但是大部分的语法都没有变更,比较推荐。
2 MySQL入门&精通
如果你已经熟练掌握了基本的SQL编写技巧,就可以进入对于MySQL产品本身的入门学习了。
推荐书籍:
- High Performance MySQL:MySQL界的圣经,目前已经出到第三版。非常详细的介绍了MySQL运维的各个部分,可以通读了解,也可以作为工具书进行查阅。
- 深入浅出MySQL数据库开发、优化与管理维护:中文原创书籍中比较适合入门的一本。教粗浅的介绍了MySQL的相关特性,比较适合MySQL运维的入门。
- MySQL技术内幕innodb 存储引擎:很详细的从代码层面分析了Innodb的内部结构,适合深入学习innodb。
3 其他学习资源
MySQL入门除了通过书本学习理论知识以外还有其他各种方式可以进行学习。
- Our Episode:一个类似于MySQL电台的节目,每周会定期出一个音频讨论一个MySQL话题。 是学习MySQL&学习英语的好选择。
- MySQL Planet:几乎涵盖了所有MySQL业界大牛的博客RSS汇总。强烈建议订阅!
- MOOC:各类公开课程网站都会有免费得MySQL入门课程试听。这里就不一一列举了。
4 运维&数据思想
推荐书籍:
- The Art of Capacity Planning:作为运维免不了要做容量规划和容量预测。这本书是一个很好的开始。
- Beautiful Data: The Stories Behind Elegant Data Solutions:对数据的敏感对于数据库运维是一个重要特质。
二、MySQL工具汇总
第二部分我汇总了和MySQL运维开发相关的所有工具,工具包含:性能测试,状态分析,SQL路由等方面,后续将持续更新。
1 工具套件集
- percona-toolkit
链接:https://www.percona.com/software/mysql-tools/percona-toolkit
- oak-toolkit
链接:http://code.openark.org/forge/openark-kit
- ps-helper(performance schema 工具函数集)
链接:https://github.com/MarkLeith/dbahelper
2 MySQL实时状态分析
- innotop
链接:https://code.google.com/p/innotop/
- orzdba
链接:http://code.taobao.org/p/orzdba/src/trunk/orzdba
- mytop
链接:http://jeremy.zawodny.com/mysql/mytop/
- systemtap工具示例集
链接:https://sourceware.org/systemtap/examples/
3 MySQL客户端&开发工具
- MySQL Workbench
链接:http://www.mysql.com/products/workbench/
- SQLyog
链接:https://www.webyog.com/
- Adminer
链接:https://www.adminer.org/
- MyQuery
链接:https://sourceforge.net/projects/myquery/
- Hopper(存储过程调试工具)
链接:http://www.upscene.com/products.hopper.index.php
4 MySQL性能监控
- mysql-statsd
链接:https://github.com/db-art/mysql-statsd
- nethogs
链接:http://www.oschina.net/p/nethogs/
5 MySQL性能测试工具
- sysbench
链接:https://launchpad.net/sysbench
- tpcc-mysql
链接:https://code.launchpad.net/~percona-dev/perconatools/tpcc-mysql
- dbt2
链接:https://sourceforge.net/projects/osdldbt/files/dbt2/
- LinkBench
链接:https://github.com/facebookarchive/linkbench
- iibench Indexed Insertion Benchmark
链接:https://github.com/tmcallaghan/iibench-mysql
6 data generator
- 测试数据生成
链接:http://www.generatedata.com/
- 地理数据生成
链接:http://www.openstreetmap.org/#map=5/51.500/-0.100
7 数据路由中间件
- mysql-proxy
链接:http://downloads.mysql.com/archives/proxy/
- Atlas
链接:https://github.com/Qihoo360/Atlas
- mycat
链接:https://code.google.com/p/opencloudb/
- MaxScale
链接:https://github.com/mariadb-corporation/MaxScale
- GLB
链接:https://github.com/codership/glb
- ScaleArc
链接:http://www.scalearc.com/
8 数据库版本管理
- liquibase
链接:http://www.liquibase.org/
9 MySQL Connector
- libAttachSQL
链接:http://libattachsql.org/