MySQL 作为目前最为活跃热门的开源数据库之一,具有低成本和简易操作的特点。在炙手可热的 BAT(百度、阿里巴巴、腾讯)中,都大量使用了 MySQL。显然,对于想在互联网行业大展手脚的数据库工程师和 DBA 们,熟练 MySQL 无疑是一块很好的敲门砖。
每个人的情况不同,自称小白的人基本有以下 3 类:
没有相关经验,还没有走上工作岗位,只是对 MySQL 感兴趣或者好奇
刚入行的新手,或者有少量经验的 DBA 新人,经常会发现实际工作和网上说的不一样
可能是开发类的同学,有一定工作经验,工作中要用到 MySQL 数据库,只是简单用,想深入学习一下
对于 MySQL 的学习周期和难度,大家是很关心的。下面我们用比较成熟的商业数据库 Oracle 作为参考,来对比学习 MySQL 的一些特点。
数据库名称 | Oracle | MySQL |
---|---|---|
数据库类型 | 商业闭源 | 开源 |
功能完善情况 | 非常齐全 | 比较齐全 |
学习周期 | 长 | 较短 |
学习难度(入门) | 难 | 容易 |
学习难度(深入) | 难 | 更难 |
Oracle到MySQL | \ | 相对容易 |
MySQL到Oracle | 难 | \ |
深度进阶 | 内核、调试 | 源码定制、改造 |
从技术栈上来说,MySQL 的入门周期相对要短,学习难度较容易。但是如果要深入了解使用,因为其开源和社区的原因,发展空间更大,相对也就更难。另外,MySQL DBA 的“钱途”从市面需求来说也要好一些。
从我的理解中,MySQL 主要有 3 个知识层面,即运维管理,架构优化和运维开发。
运维管理主要就是基础运维的工作(安装部署,备份恢复,权限管理之类的工作)和一些变更类管理和规范操作(在线变更,数据库复制,SQL 规范等工作),这部分工作上手较快。
架构和优化涉及的工作面比较宽,而且技术要求有一定的深度,主要分为 SQL 查询优化,事务和锁,MySQL 集群和高可用技术,分布式数据库架构等。这部分工作中对于很多开发同学来说,要注重于查询优化。而对于从初级走向中高级的 DBA 来说,则要更注重于相关的锁机制、集群和高可用相关技术。
运维开发的工作不是简单的数据库自动化运维,而是分为应用层和内核。我们常说的运维开发是偏向于应用层的,比如数据库管理工具等。而内核层需要掌握源码开发能力,比如开发数据库中间件,SQL 审核工具等。
MySQL 主要从事以下 3 方面工作。
MySQL 只是该工作技能之一。掌握 MySQL 安装,维护和基本操作就可以。基本月薪 6K~10K。
MySQL 只是该工作技能之一。掌握 MySQL 安装,维护和基本操作就可以。基本月薪 6K~10K。
这个就分很多种了,主要看 MySQL 的掌握程度。一般的是 MySQL 数据库管理员。基本月薪 10K~15K。
高大上的有数据分析工程师,数据库开发工程师,数据库建模工程师,数据库挖掘工程师等,这类需要掌握 Oracle 数据库。基本月薪 15K~28K。