MySQL进阶路:从小工到专家的必读书籍和必备工具

news/2024/11/10 2:27:01

作者介绍

卢钧轶,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 循环等的熟练掌握对之后的运维和调优工作都有很大的帮助。


推荐书籍:


  1. SQL Cookbook一本循序渐进的SQL指导手册。每一种业务需求,书中都用MySQL,SQL Server,Oracle三种语法进行解析。可以顺序的作为学习书籍,也可以之后作为工具书籍查阅。

  2. The Art of SQL:将SQL调优模拟成一场战役,进行战术分析。更多的是传授SQL架构设计方面的知识,实际的调优实例不多,翻译很烂,建议看原版。

  3. SQL应用重构

  4. OReilly.MySQL.Stored.Procedure.Programming.Mar.2006.chm学习MySQL 存储过程语法和编写的最好教材。虽然版本比较老,但是大部分的语法都没有变更,比较推荐。


2 MySQL入门&精通


如果你已经熟练掌握了基本的SQL编写技巧,就可以进入对于MySQL产品本身的入门学习了。


推荐书籍:


  1. High Performance MySQL:MySQL界的圣经,目前已经出到第三版。非常详细的介绍了MySQL运维的各个部分,可以通读了解,也可以作为工具书进行查阅。

  2. 深入浅出MySQL数据库开发、优化与管理维护中文原创书籍中比较适合入门的一本。教粗浅的介绍了MySQL的相关特性,比较适合MySQL运维的入门。

  3. MySQL技术内幕innodb 存储引擎很详细的从代码层面分析了Innodb的内部结构,适合深入学习innodb。


3 其他学习资源


MySQL入门除了通过书本学习理论知识以外还有其他各种方式可以进行学习。


  1. Our Episode:一个类似于MySQL电台的节目,每周会定期出一个音频讨论一个MySQL话题。 是学习MySQL&学习英语的好选择。

  2. MySQL Planet几乎涵盖了所有MySQL业界大牛的博客RSS汇总。强烈建议订阅!

  3. MOOC各类公开课程网站都会有免费得MySQL入门课程试听。这里就不一一列举了。


4 运维&数据思想


推荐书籍:


  1. The Art of Capacity Planning作为运维免不了要做容量规划和容量预测。这本书是一个很好的开始。

  2. 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/


http://www.niftyadmin.cn/n/3537935.html

相关文章

如何挖掘Nginx日志中隐藏的金矿?

对很多开发运维人员来说,Nginx 日志文件在被删除前可能都不会看上一眼。但实际上,Nginx 隐藏了相当丰富的信息,或许其中便蕴含着未知的金矿等你挖掘! 写在前面 Nginx(读作 Engine-X)是现在最流行的负载均衡…

性能优化知多少

1. 引言 最近一段时间,系统新版本要发布,在beta客户测试期间,暴露了很多问题,除了一些业务和异常问题外,其他都集中在性能上。有幸接触到这些性能调优的机会,当然要总结了。 性能优化是一个老生常谈的问题了…

云架构下的性能分析两实例

一、性能分析的完整思路 性能分析一直是性能实施项目中的一个难点。对于只做性能测试不做性能分析的团队来说,总是不能把问题非常显性地展示出来,不能给其他团队非常明确的引导。对于这种类型的测试实施,只能把问题抛出来,让其他相…

Netstat命令详解 如何关闭TIME_WAIT连接 如何查看nginx的访问流量

做计算机管理员,我们都必要了解一下netstat这个命令,它是一个查看网络连接状态的工具,在windows下也默认有这个工具。 Netstat命令详解 netstat命令怎样使用 如何关闭TIME_WAIT连接 如何统计web服务器的访问量 如果查看nginx的访问流量&#…

实时流计算、Spark Streaming、Kafka、Redis、Exactly-once、实时去重

http://lxw1234.com/archives/2018/02/901.htm在实时流式计算中,最重要的是在任何情况下,消息不重复、不丢失,即Exactly-once。本文以Kafka–>Spark Streaming–>Redis为例,一方面说明一下如何做到Exactly-once,…

HIVE中get_json_object与json_tuple使用处理json格式数据

hive中提供了两种针对json数据格式解析的函数,即get_json_object(…)与json_tuple(…),理论不多说,直接上效果示意图: 假设存在如下json数据对象,若使用hive环境可这么设置: set hiv…

Impala表使用Parquet文件格式 2017年05月23日

准备了一个 427144792 行的 textfile 格式表 t_item: [impale-host:21000] > select count(1) from t_item; Query: select count(1) from t_item ----------- | count(1) | ----------- | 427144792 | ----------- Fetched 1 row(s) in 191.67s 该表在 hdfs…

近来关于openTSDB/HBase的一些杂七杂八的调优

背景 过年前,寂寞哥给我三台机器,说搞个新的openTSDB集群。机器硬件是8核16G内存、3个146G磁盘做数据盘。 我说这太抠了,寂寞哥说之前的TSDB集群运行了两年,4台同样配置的机器,目前hdfs才用了40%,所以前期先…