经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,很多程序员都可以通过使用框架很快速地搭建起一个Java Web应用,特别是近几年SpringBoot大热,干脆连配置都不需要了解了,直接一键式编译部署运行,让Java工程师的入门成本变得越来越低。

但于此同时,互联网公司对于Java的应用场景也在不断地升级换代,从单机部署再到分布式,从SOA再到微服务,Java后端技术栈变得更加庞大,对于工程师的要求也越来越高,特别是对于大公司来说更是如此,Java Web工程师已经不复存在,而取而代之的是Java后端工程师,也就是说,我们这些Java程序员不仅要写好业务代码,还要更多地掌握后端技术,除了数据库之外,像是缓存、消息队列、定时任务、微服务等技术也都是我们需要掌握的内容。

今天的这份书单我们就先从MySQL数据库谈起,介绍几本不错的MySQL书籍,其中包括sql基础、MySQL基础实践指南,以及进阶的一些书籍,包括如何管理和运维MySQL,以及最后一本介绍MySQL存储引擎的书籍,可以说是由浅入深,把学习MySQL必备的一些知识点都囊括进来了,相信这些书籍对你会有所帮助。

MySQL系列书单

了解数据库的第一步,最好的方法就是去使用它,无论数据库内部的原理有多复杂,我们平时使用的时候仍然还是在写sql,掌握好基础的sql语法,是最重要的第一步,我们平常使用的CRUD命令,统称为DML,而像是建表、修改表结构,以及删除表的命令,则叫做DDL。其实,sql命令并没有你想象的那么简单,比如sql中的join、索引以及group by和union等命令的用法,也需要你去慢慢学习和理解,实践是学习sql最好的方法。

这本《sql必知必会》由浅入深地介绍了我们常用的一些sql,本身难度不大,但是用于快速上手sql是再合适不过的一本书了,很多时候,如果把本书作为工具书来看,也是非常实用的。

 

本书作者是Adobe公司开发者关系部总监,世界知名的技术作家,在计算机产品开发、支持、培训和营销等方面拥有20多年的丰富经验。多年来,他撰写了SQL、MySQL、正则表达式、JSP、WAP和Windows开发等方面的十多部技术图书,其中不少已被翻译为多种语言在世界各地出版发行并成为畅销经典。读者可以通过他的个人网站forta.com了解更多信息。

 

众所周知,市面上最流行的数据库是MySQL,因为其开源、免费的特性而大受欢迎,新手入门学习数据库用的一定也是MySQL,因此《SQL必知必会》的作者在广大群众的呼声中又写了这一本《MySQL必知必会》本书基本上可以理解为是《SQL必知必会》的MySQL定制版,除了介绍基本的sql用法之外,还介绍了很多MySQL的常用功能,整体来看还是比较基础的。

 

Ben Forta,世界知名的技术作家,也是Adobe技术界知名的专家之一,目前担任Adobe公司的高级技术推广专家。他具有计算机行业20多年工作经验,多年来撰写了十几本技术图书,包括《正则表达式必知必会》、《SQL必知必会》(人民邮电出版社出版)等世界性的畅销书,已被翻译为十几种文字。

 

接下来这本书就厉害了,原作者和译者都是数据库领域的资深大牛,如果说学习SQL和基本功能是为了让开发工程师更好地使用SQL来实现业务功能,而这本书则涵盖了MySQL开发、运维和管理的各类内容,比如如何进行MySQL的配置,如何使用事务,并且还介绍了MySQL自带的二进制日志,数据的备份和恢复等内容,不管是对于一线开发者还是DBA同学,都有着很好的参考价值。

作者简介

Karthik Appigatla是一位备受尊敬的数据库架构师,他在性能调优领域闻名于世。他为世界各地的许多公司提供设计咨询、性能调优、数据库架构设计和培训服务。在过去十年中,他曾供职于雅虎、Pythian和Percona等公司。目前,他任职于LinkedIn,在那里他发明了一种新的分析查询方法,并于2017年在都柏林的SRECon上发表了关于这个新发明的演讲。

终于到了最后一本压轴的书了,上面三本书,虽然从难度上来看也是由浅入深,但始终还是围绕着SQL和MySQL的使用和管理,并没有深入MySQL的实现原理进行探讨,如同隔靴搔痒,好不痛快。对于后端工程师以及数据库研发人员来说,了解数据库的使用是远远不够的,必须要深入其原理进行学习,才能够更好地进行sql优化以及数据库的优化,更重要的是,遇到了数据库问题,知道如何排查,需要考虑数据接入方案的时候,也可以更好地进行选型和实践。

MySQL数据库中有两种常见的存储引擎,一种是myisam,另一种就是innodb了,而实际上现在MySQL数据库大部分都在使用innodb引擎,而这个引擎也是MySQL实现数据库功能的核心所在,比如数据文件如何存储、索引是如何实现的,事务和锁又是如何通过存储引擎来实现的,这些后端面试进阶的知识点,这本书里都有相应的内容。市面上介绍MySQL存储引擎的书并不多,不管是面试还是平时做数据库调优,本书都非常值得一读。

姜承尧(David Jiang),资深MySQL数据库专家,擅长于数据库的故障诊断、性能调优、容灾处理、高可用和高扩展研究,同时一直致力于MySQL数据库底层实现原理的研究和探索。此外,对高性能数据库和数据仓库也有深刻而独到的理解。曾为MySQL编写了许多开源工具和性能扩展补丁,如广受好评的InnoDB引擎二级缓存项目。现任网易杭州研究院技术经理一职,负责MySQL数据库的内核开发,参与设计与开发MySQL数据库在网易云环境中的应用。