前言
为了能够使大家真正高效学好 MySQL,本文通过为什么要学MySQL,到MySQL要学习什么,给出本专栏会讲解MySQL哪些知识,全面了解本专栏,帮助大家可以简历中写“精通MySQL”而不虚,帮助学习本专栏的人成为组内数据库Owner。
一、为什么要学MySQL
1、MySQL是什么
MySQL是一个关系型数据库管理系统,号称:全球最受欢迎的开源数据库,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的关系数据库管理系统应用软件之一(不谈论形而上学的问题,比如什么数据库最好)。
2、都谁再用MySQL
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言,由于体积小、速度快、总体拥有成本低,尤其是开放源码这一特点被很多互联网公司青睐,互联网公司的业务增长是指数级爆发式的增长。通过架构选型,最早像阿里、腾讯、百度等等国内外的互联网巨头纷纷选择用开源数据库MySQL。
包括 Facebook、Twitter 在内的许多世界上最大和发展最快的组织都依赖 MySQL 来节省时间和金钱来支持他们的大容量网站、关键业务系统和打包软件。
二、MySQL要学习什么?
“物有本末,事有终始,知所先后,则近道矣。”
学习MySQL首先需要一些入门知识,包括 MySQL 的历史背景、语法(CRUD、读写锁、事务、数据)、MySQL 的框架、多版本并发控制、存储引擎(InnoDB、MyISAM)等等基础知识。
有了这些知识的铺垫,我们可以更上一层楼,学习 MySQL 的工作原理,MySQL 的性能优化,MySQL 故障诊断和服务器问题分析等等。
同时要想设计一个好的数据库,对 MySQL 的物理设计的了解不可或缺,这关系到数据库的逻辑设计和物理设计,例如:如何建一个扩展性好的表,利用 MySQL 优化器、查询缓存等等。
MySQL 的软件源码和硬件设计了解之后,就要考虑如何配合我的应用程序工作,例如针对不同的项目如何配置 MySQL 才能更好的利用硬件资源,操作系统和 MySQL 的联系,学习了这些算是覆盖了 MySQL 基础和使用,MySQL 内部是如何实现的。
这时候我们算是对 MySQL 有了全方位的了解,最后在架构层面需要考虑整个应用架构的鲁棒性高可用高并发高性能高安全的设计。
MySQL主从同步、主主同步(多个服务器从一台主服务器同步数据),该怎么改善应用系统扩展性、高可用(如何保障 MySQL 稳定而正确地持续运行,例如:停电、火灾、无法抵御的恶意攻击、数据库备份与恢复,减少宕机时间),要想设计一款好的产品,程序员应该具备那些产品思维,从用户体验开始设计数据库。
三、本专栏的设计
本专栏目的为了解决 MySQL 有关一切问题,从入门到精通,再到 MySQL 架构实战,全方位构件知识体系。
1、打造夯实寄存,绝望之谷
MySQL 的体系架构与存储引擎,事务与锁的机制,深入了解 MySQL 的内部机制和原理;
表的设计(比如表结构设计、访问设计、物理存储设计);
SQL 索引的设计与调优(比如多表 JOIN、子查询、分区表);
2、持续攀登,开悟之坡
MySQL 库表设计和索引设计的一些思路,MySQL 的架构设计和查询优化;
MySQL 包括系统、网络、硬件、性能优化、高可用、架构设计等等方面的扩展和深入;
MySQL 分布式架构(分布式架构概述、分布式表结构设计、分布式索引设计、分布式事务)
总结
以上是字节二面的一些问题,面完之后其实挺后悔的,没有提前把各个知识点都复习到位。现在重新好好复习手上的面试大全资料(含JAVA、MySQL、算法、Redis、JVM、架构、中间件、RabbitMQ、设计模式、Spring等),现在起闭关修炼半个月,争取早日上岸!!!
下面给大家分享下我的面试大全资料
- 第一份是我的后端JAVA面试大全
后端JAVA面试大全
- 第二份是MySQL+Redis学习笔记+算法+JVM+JAVA核心知识整理
MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理
- 第三份是Spring全家桶资料
MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理
SQL+Redis学习笔记算法+JVM+JAVA核心知识整理
- 第三份是Spring全家桶资料
[外链图片转存中…(img-1C2MviSt-1714516321427)]
MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理