技术文章

是否要掌握全部的MySQL工具?

完全没有必要。工具只是一种辅助,它可以让我们的工作变得更快捷,但是不要完全依赖工具;我们要把精力放在学习 MySQL 本身,而不是放在学习 MySQL 的工具上。

那么学习 MySQL 需要学习哪些知识呢,我大概整理了一下学习的内容和路线;因为我是程序员,所以这个路线是站在开发人员的角度整理的,如果是专业的 MySQL DBA,要掌握更多的知识。

MySQL工具

01. 数据库基本操作和基本的 SQL

任何一个语言、软件、框架,我们都要先会使用,所以我们需要先掌握 MySQL 的基本操作和基本的 SQL。

数据库的基本操作:MySQL 的安装、创建数据库、删除数据库;

表和字段的基本操作:创建表、删除表、查看表结构、新增修改删除某一个字段、设置主键外键;这里要注意的一点,你不要学习通过工具完成这些操作,而是要会具体的 SQL 语句;比如 create table ...

熟悉字段的基本类型:数值类型、日期和时间类型、字符串类型;最基础的认识,到后面的阶段对这些要有更深的了解。

基本的 SQL 语句:了解 select、insert、update、delete 等基本操作,可以完成单表的增删查改。

MySQL工具

02. SQL 语句

数据库的精髓就是 SQL 语句了,这也是需要我们主要了解的部分,基本的 SQL 语句已经在第一阶段学习了,那么这个阶段我们需要了解哪些呢?

单表查询:这里就不是指 where column = xxx 这么简单的查询了,我们需要学习各种查询条件,包括大于小于、like、between and 等等,以及排序操作;

聚合函数:比较常用的是 avg, count, max, min, sum 等函数;

数据库函数:MySQL 自带了很多函数,一些常见的函数,我们也需要了解,包括数学函数、字符串函数、日期函数、条件判断函数等等;

复杂的查询:包括各种关联查询(内连接、外连接、自连接)、子查询、分组查询(group by ... having...)等等;

索引:这里我们要对索引有一个基本的认识,索引可以让查询语句执行的更快,我们要知道如何通过 SQL 语句创建索引;

其他的包括:视图、存储过程、事务等等。

MySQL工具

  03. SQL 优化

第二阶段的 SQL 学习,主要是学习 SQL 怎么用,而到了这个阶段,需要知道如何用更合理。

索引:对索引有更深入的了解,为什么用了索引查询就会变快?索引有哪些分类,常用的 B+ 树索引的数据结构是什么样的,索引对新增、修改、删除有什么样影响等等;

SQL 优化:写一个 SQL 语句很简单,让这个 SQL 执行的更快,就需要下写功夫了;要熟悉常用的 SQL 优化技巧,比如哪些错误的 SQL 写法可能会导致索引失效,如何查询和定位慢 SQL 等等;

数据类型:对每一种数据类型的大小、范围、适用场景都有了解,不同的数据选择合适的数据类型,比如人的年龄这个字段,就没有必要选择 INT 类型了;

MySQL工具

到了这个极端,对于开发人员算是比较合格的了,注意!只是合格,我在工作中见过不少程序员,只停留在第二阶段,他们只管实现很少关注效率,这对于项目来说都是隐藏的危机。

如果想要更进一步,我们要继续学习的内容还有很多,比如 MySQL 的存储引擎(每种存储引擎的区别)、事务特性、锁、隔离级别、部署方式等等,甚至一些和 MySQL 没有实质关联的内容,比如表结构的设计、表的拆分、各种数据库中间件等等。

要学的内容有这么多,我们没有必要把过多的精力放在工具的学习上。