剑指MySQL:架构、调优与运维
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 MySQL概述

如图1-1所示,MySQL图标中有一只海豚,根据官方介绍,海豚名叫Sakila,是从“海豚命名”竞赛中选出的。这个名字是由非洲斯威士兰的开源软件开发者Ambrose Twebaze提供的。据Ambrose Twebaze介绍,Sakila源自斯威士兰方言中的SiSwati,也是坦桑尼亚阿鲁沙一个小镇的名字。

图1-1 MySQL图标

1.1.1 MySQL简介

MySQL是一个关系型数据库管理系统,由瑞典的MySQL AB公司(创始人为Monty Widenius)开发。2008年,MySQL AB公司被Sun公司以10亿美元收购。2009年,Sun公司被Oracle公司收购。

在这里我们还要提及MariaDB。MariaDB是MySQL的一个分支,主要由开源社区维护,采用GPL(GNU General Public License)授权许可,其目的是完全兼容MySQL。MariaDB也是由MySQL AB公司的创始人MontyWidenius主导开发的。随着Sun公司被Oracle公司收购,MySQL的所有权也落入Oracle公司手中,MySQL也就有了被闭源的风险,因此,开源社区采用分支的方式来规避该风险。

我们接着说回MySQL。MySQL将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样不仅提高了数据查询效率和表的灵活性,而且更方便和业务相关联。MySQL支持大型数据库,32位系统最大可支持4GB表文件,64位系统最大可支持8TB表文件。MySQL使用标准的SQL数据语言形式,可以运行在多个系统上,并且支持多种编程语言,包括C、C++、Python、Java、Perl、PHP、Ruby等。

市面上有那么多数据库,为什么要学习MySQL呢?原因主要有三点:一是MySQL是开源的,使用成本低;二是MySQL性能卓越、服务稳定;三是MySQL历史悠久,社区用户非常活跃,遇到问题可以方便地寻求帮助。

图1-2所示为2023年3月主流数据库排名情况,MySQL位列第二。

图1-2 2023年3月主流数据库排名情况

1.1.2 MySQL的发展历程

MySQL是一款开源软件,企业可以根据自身需求对其进行自定义修改。另外,MySQL可以提供免费的社区版本,为企业节约开发成本。不管是在社交领域、电商领域,还是在金融领域,我们都能见到MySQL的身影。这些领域对数据库都有高并发、高性能、高可用、易维护、易扩展的需求,从而促进了MySQL的长足发展。图1-3展示了MySQL的发展历程。

图1-3 MySQL的发展历程

1.1.3 MySQL高手是如何练就的

一般来说,需要与数据库打交道的有三类人员,分别是开发工程师、数据库管理人员(Database Administrator,DBA)、运维人员。想要成为MySQL高手,需要掌握以下技术点。

●MySQL服务器的安装与配置。

●数据库索引创建。

●SQL语句优化。

●数据库内部结构和原理。

●数据库性能监控分析与系统优化。

●各种参数设置。

●数据库建模优化。

●主从复制。

●分布式架构搭建、垂直切割和水平切割。

●数据迁移。

●容灾备份和恢复。

数据库就像一棵常青的技能树,不管是普通开发人员,还是首席架构师,抑或是CTO(Chief Technology Officer,首席技术官),都能够从中汲取足够的技术养料。普通开发人员往往立足于使用的技术层面,如会编写基本的SQL语句、了解事务的特性等。而首席架构师或CTO则往往需要深入了解底层原理,如数据库事务四大特性的实现原理、分布式场景下数据库的优化等。也就是说,他们不仅要知其然,还要知其所以然。很多技术专家在总结程序员核心能力的时候,都会提到至关重要的一点——精通数据库。精通意味着首先要形成知识网,能灵活地应对突发问题;其次要懂底层原理,能自如地应对复杂多变的业务场景。本书内容将涵盖以上技术点,以帮助读者成长为MySQL高手。