MySQL 作为目前最为活跃热门的开源数据库之一,具有低成本和简易操作的特点。在炙手可热的 BAT(百度、阿里巴巴、腾讯)中,都大量使用了 MySQL。显然,对于想在互联网行业大展手脚的数据库工程师和 DBA 们,熟练 MySQL 无疑是一块很好的敲门砖。
每个人的情况不同,自称小白的人基本有以下 3 类:
#### 1)求职储备(无工作经验)
没有相关经验,还没有走上工作岗位,只是对 MySQL 感兴趣或者好奇
#### 2)DBA萌新(较少工作经验)
刚入行的新手,或者有少量经验的 DBA 新人,经常会发现实际工作和网上说的不一样
#### 3)工作中会用到(有工作经验)
可能是开发类的同学,有一定工作经验,工作中要用到 MySQL 数据库,只是简单用,想深入学习一下
对于 MySQL 的学习周期和难度,大家是很关心的。下面我们用比较成熟的商业数据库 Oracle 作为参考,来对比学习 MySQL 的一些特点。
| 数据库名称 | Oracle | MySQL |
| --- | --- | --- |
| 数据库类型 | 商业闭源 | 开源 |
| 功能完善情况 | 非常齐全 | 比较齐全 |
| 学习周期 | 长 | 较短 |
| 学习难度(入门) | 难 | 容易 |
| 学习难度(深入) | 难 | 更难 |
| Oracle到MySQL | \\ | 相对容易 |
| MySQL到Oracle | 难 | \\ |
| 深度进阶 | 内核、调试 | 源码定制、改造 |
从技术栈上来说,MySQL 的入门周期相对要短,学习难度较容易。但是如果要深入了解使用,因为其开源和社区的原因,发展空间更大,相对也就更难。另外,MySQL DBA 的“钱途”从市面需求来说也要好一些。
从我的理解中,MySQL 主要有 3 个知识层面,即运维管理,架构优化和运维开发。
#### 1)运维管理
运维管理主要就是基础运维的工作(安装部署,备份恢复,权限管理之类的工作)和一些变更类管理和规范操作(在线变更,数据库复制,SQL 规范等工作),这部分工作上手较快。
#### 2)架构优化
架构和优化涉及的工作面比较宽,而且技术要求有一定的深度,主要分为 SQL 查询优化,事务和锁,MySQL 集群和高可用技术,分布式数据库架构等。这部分工作中对于很多开发同学来说,要注重于查询优化。而对于从初级走向中高级的 DBA 来说,则要更注重于相关的锁机制、集群和高可用相关技术。
#### 3)运维开发
运维开发的工作不是简单的数据库自动化运维,而是分为应用层和内核。我们常说的运维开发是偏向于应用层的,比如数据库管理工具等。而内核层需要掌握源码开发能力,比如开发数据库中间件,SQL 审核工具等。
MySQL 主要从事以下 3 方面工作。
#### 1)技术支持工程师。
MySQL 只是该工作技能之一。掌握 MySQL 安装,维护和基本操作就可以。基本月薪 6K~10K。
#### 2)系统集成工程师。
MySQL 只是该工作技能之一。掌握 MySQL 安装,维护和基本操作就可以。基本月薪 6K~10K。
#### 3)数据库工程师。
这个就分很多种了,主要看 MySQL 的掌握程度。一般的是 MySQL 数据库管理员。基本月薪 10K~15K。
高大上的有数据分析工程师,数据库开发工程师,数据库建模工程师,数据库挖掘工程师等,这类需要掌握 Oracle 数据库。基本月薪 15K~28K。
- 数据库入门
- 1.常用的数据库
- 2.数据管理技术的3个发展阶段
- 3.数据库是什么?关系型数据库和非关系型数据库又是什么?
- 4.为什么要使用数据库?
- 5.数据库系统是什么?它由哪几部分组成?
- 6.常用数据库访问接口简介
- 7.数据库的种类有哪些?
- 8.几种常用的数据库
- 9.MySQL是什么
- 10.MySQL适用于哪些场景?
- 11.学MySQL前,需要了解这些数据库专业术语
- 12.MySQL客户端和服务器架构(C/S架构)
- 13.明白了MySQL内部结构才能成为高手!
- 14.如何学习数据库(新手必看)?
- 15.小白学习MySQL需要多长时间,能从事哪方面的工作?
- 16.当前市场对数据库程序员的需求如何?待遇如何?
- 17.DBA到底要做什么,成为一名DBA需要具备什么能力?
- 一、数据库的概念和常用工具
- 二、MySQL规范、配置及登录退出操作
- 三、MySQL中的数据类型
- 四、数据库增查改删等操作
- 五、数据表增查改删操作
- 六、MySQL数据增查改删操作
- 七、MySQL存储引擎
- 八、MySQL常用函数
- MySQL的安装和配置
- 1.MySQL 5.7的新特性(新功能)
- 2.MySQL下载步骤详解
- 3.MySQL安装配置教程(Windows系统)
- 4.MySQL免安装版配置教程
- 5.MySQL配置环境变量
- 6.安装MySQL后,如何判断是否已安装成功
- 7.启动MySQL服务的两种方式(图解)
- 8.登录MySQL数据库
- 9.对Linux MySQL软件包的一些说明
- 10.Linux CentOS卸载MySQL(Linux安装MySQL前的准备)
- 11.Linux安装配置MySQL详细步骤
- 12.MySQL my.cnf配置文件详解
- 13.MySQL常用图形化管理工具
- 14.MySQL安装后的目录结构介绍
- 15.MySQL数据库文件存放目录结构详解
- 16.MySQL配置文件(my.ini)详解
- 17.与其它数据库不同,MySQL可以在不同的SQL模式下运行
- 18.MySql Command Line Client闪退原因及解决方案
- MySQL数据库的基本操作
- 1.SQL是什么?它能做什么?
- 2.SQL的基本书写规则
- 3.MySQL查看或显示数据库(SHOW DATABASES语句)
- 4.MySQL创建数据库(CREATE DATABASE语句)
- 5.MySQL修改数据库:ALTER DATABASE用法简介
- 6.MySQL删除数据库(DROP DATABASE语句)
- 7.MySQL选择数据库(MySQL USE语句)
- 8.MySQL注释:单行注释和多行注释
- 9.MySQL中SQL语句的大小写规则
- 10.如何查看MySQL系统帮助?
- 11.看懂SQL错误代码,提高学习效率!
- 数据库高级
- 一、视图的操作
- 二、触发器的操作
- 三、事务的操作
- 四、索引的操作
- 五、存储过程的操作
- 六、数据库的优化方案
- 1.分库、分表和索引
- 2.读写分离和查询优化
- 3.join代替子查询
- 4.尽量使用短小的事务
- 5.常用小技巧
- MySQL使用注意事项
- 1.字符乱码及连接驱动