最近今年随着开源数据库的成熟,大型、中性、小型企业已经被广泛使用。广泛使用又会反过来初始其更加成熟。而开源数据库中的MySQL无疑是其中的佼佼者, 根据DB-Engines Ranking 2021年8月数据,MySQL作为目前最流行的开源数据库(没有之一),以其免费使用、配置简单、成熟稳定、性能优良等特性,占领了很大的市场。
MySQL数据库最初由一小拨人开发,后来隶属于MySQL AB公司,2008年,MySQL AB公司被Sun公司以10亿美金收购,MySQL数据库进入Sun时代。2009年,Oracle公司以74亿美元收购Sun公司,自此MySQL数据库进入Oracle时代。 被Oracle收购后一段时间,大家对MySQL开源的未来前景充满了担心(这种担心也间接导致被更多人选用PostgreSQL数据库)。十几年过去了,目前看,这种担心是多余的,MySQL这十年发展得很快,也被更广泛使用,也变得更加成熟。
MySQL第8个大版本,在2018年4月19日发布(8.0.11)。截止到2020年,经过两年的优化和调整,MySQL8总体上已基本成熟,已经迎来生产环境规模性使用的时间阶段。
MySQL相关的文档资料也非常多。这些文档资料主要分为三类:
- 官方文档。 官方文档特点是大而权威(尽管偶尔也有个别错误或与实际不一致)。但官方文档也有缺点:①内容太多,很多人没有耐心看完;②官方是从参考手册角度写的,不是从教材角度写的;③官方文档是english,很多同学虽然硬着头皮能看懂english,但心里就是不喜欢看。
- 出版书籍。书籍的好处是系统全面,且有很多中文书籍。但作者水平参差不齐,而且有些书是前几年出版,针对的MySQL版本比较老。还有一个原因,书需要买了看了才知道好不好。花钱还可能买错。截止2019年底,涉及MySQL的中文书籍仅3本。
- 网上资料。MySQL各种资料非常丰富,对解决日常问题有很多帮助。但是网上资料存在:①低质量或错误的内容太多(估计很多人都有这种感觉,所谓的解决办法不能解决,反而错的更远);②不够系统,比较碎片化。 ③有些内容过时了,已经不是目前或者未来2~3年的主流版本。
对此,本文以多篇文章连载的形式作为教程。系统全面的讲解MySQL 8 各个方面,内容从基础入门到高级实战,并加入了易犯错避坑的提示。主要包括三大篇章:
- 基础篇。零起步,从安装开始,一步一步的熟悉、理解、运用MySQL 8基础操作、主要功能和特性。
- 高级篇。从企业实际的角度,讲解实际生产环境中需要设计的部署、架构和功能。
- 附录篇。包括某个专题,一些有利于工作得小经验、小技巧或者避坑绕路的总结汇总。比较零散,便于备查。
本教程,主要特点:
- 内容来源权威。本教程借鉴了国内相关书籍和资料,并且对其中写的不清楚的地方进行了补偿和完善。 编排上借鉴了国内书籍和读者习惯,由浅入深。同时为了避免自己经验主义或理解误差。里面的具体知识点对照官方的英文文档进行再次核实。
- 把难点、易错点讲清楚讲透彻。对于难点、易错点重点讲清楚,用各种颜色提醒,希望读者第一次学习就能理解透。对大家一看就懂的内容,则着墨不多。IT所有技术都是人为涉及、人工创造的,所以一定都是易懂易理解的。但有时由于文档不全,或有文档讲解不清晰,导致学起来难度大增。等最后学会后,把难点、易错点搞清楚了,发现所谓的难度其实就一层窗户纸,轻轻捅破后也不过如此。
- 以较新的主流版本做基础。以MySQL8为基础(具体版本为MySQL8.0.18),同时兼顾MySQL5.7(5.7.28)。MySQL8正式版已经推出一年半,未来2~3年即将大规模使用。因此选择MySQL8版本作为教程的主版本。
- 全部命令均经过验证。为了提高准确性和可信度,文章中所有命令均经过验证(在MySQL8.0.18上),哪怕是最简单的命令也都在环境中执行了一遍。
- 覆盖MySQL OCP的内容。本教程可作为MySQL OCP的备考教程。文章中部分覆盖了MySQL8的考试大纲和真题库(官方题库不断的更新且保密,只能覆盖部分真题)。 MySQL 8 OCP认证考试预计于2020年1月份推出。
- 不展开讲解数据库基本原理、SQL基本语法。本文假定的读者熟悉常见SQL,最好也使用过其他数据库产品(简单使用过即可)。这部分为专门讲解,以突出MySQL的重点。
目录如下:
基础篇:
【MySQL基础】05:表及存储引擎(Table and Storage Engine)
【MySQL基础】08:存储过程(Procedure)和函数(Function)
管理篇:
附录篇:
【MySQL附录】A1:客户端工具使用详解(上):客户端mysql
【MySQL附录】A2:客户端工具使用详解(下):mysqladmin、perror、mysqldump、mysqlpump、mysqlimport
【MySQL附录】A3:MySQL存储引擎性能对比(使用sysbench测试)
【MySQL附录】A4:MySQL中执行计划explain详解
【MySQL附录】A5:MyCat连接MySQL8.x的报错及处理
【MySQL附录】A6:OCP报考详细流程(2019年11月更新)
最后,希望大家多提意见。便于本教程不断修改完善。