写点什么

三年 Crud,一周学会 MySQL,助我拿到阿里研发 Offer

作者:钟奕礼
  • 2022-12-10
    湖南
  • 本文字数:1701 字

    阅读完需:约 6 分钟

前言

MySQL 近两年一直稳居第二,随时有可能超过 Oracle 计晋升为第一名,因为 MySQL 的性能一直在被优化,同时安全机制也是逐渐成熟,更重要的是开源免费的。

目前大部分的互联网的首选也仍然是 MySQL,所以作为一名开发人员,掌握好 MySQL 的使用是非常有必要的,那么如何能够达到“精通”MySQL 的程度,那就需要耗费不少心思了。那么如何学习 MySQL 呢?今天就来好好谈谈。

下面介绍我学习 MySQL 的三个步骤,一周就搞定了 MySQL,让我顺顺利利拿下了阿里的研发岗 offer。

这三个步骤里,包括了很多文档资料,如 Xmind 思维图、学习笔记、实战文档、面试题等等,均免费分享,需要的小伙伴可以+ VX: mxk6072



第一步:梳理 MySQL,列出结构图

无论是学习什么知识和技能,学会梳理是非常重要的,对于一个知识的梳理,一方面能够加速记忆,另一方面能够使得脑海知识点的整体更清晰完整,所以我学习 MySQL 的第一步就是梳理 MySQL。

对于 MySQL 的梳理,我也特整理了这么一个结构图,包含了 MySQL 相关的主要核心知识,真正做到了一目了然:

MySQL 笔记图(Xmind)

第二步:从基础到实战,统统搞定

1.从基础入门,解密 MySQL




2.MySQL 性能优化的 21 个最佳实践




3.关于 MySQL,我的个人小项目

之前写了一版简单的 shell 脚本,能够实现简单的 MySQL Group Replication 环境的测试快速部署,大概就 1 分多钟的时间就快速创建多个实例节点,如果要学习尝鲜 MGR 的话还是推荐试试的。

自己也手工测试过几次,还能用。说不上高大上,但是能够基本满足需求,今天又抽空完善了一下,在一个全新的环境中部署了一把,还算比较顺利。

我简单说说这个小的项目,也希望大家齐心协力,把它逐步完善起来。

github 上的截图如下:


如果要实现快速部署 MGR,下面是一些基本的步骤。

1. 首先需要下载MySQL软件,配置/etc/hosts文件,下载二进制包都不需要什么安装了,直接解压放入指定的目录即可,比如/usr/local/mysql。目前最新的版本是官方的5.7.19
复制代码

第三步:吃透面试题,顺利进大厂

1.24 个必须掌握的数据库面试问题

  1. 为什么用自增列作为主键

  2. 为什么使用数据索引能提高效率

  3. B+树索引和哈希索引的区别

  4. 哈希索引的优势

  5. 哈希索引不适用的场景

  6. B 树和 B+树的区别

  7. 为什么说 B+比 B 树更适合实际应用中操作系统的文件索引和数据库索引?

  8. MySQL 联合索引

  9. 什么情况下应不建或少建索引

  10. 什么是表分区?

  11. 表分区与分表的区别

  12. 表分区有什么好处?

  13. 分区表的限制因素

  14. 如何判断当前 MySQL 是否支持分区?

  15. MySQL 支持的分区类型有哪些?

  16. 四种隔离级别

  17. 关于 MVVC

  18. 在 MVCC 并发控制中,读操作可以分成两类

  19. 行级锁定的优点

  20. 行级锁定的缺点

  21. MySQL 优化

  22. key 和 index 的区别

  23. Mysql 中 MyISAM 和 InnoDB 的区别有哪些?

  24. 数据库表创建注意事项



2.MySQL 数据库高级工程师岗位面试题



3.BATJ 一线互联网常问 MySQL 精选 55 题


另附阿里面试题:

(由于篇幅问题,接下来的内容我只列出了阿里面试官的问题,自己能答上来的大概只有一半)

  • 你能说说为什么 B+树相对于 B 树在查询上会更加优胜吗?

  • 除了上面这个范围查询的,你还能说出其他的一些区别吗?

  • 刚刚我们聊到 B+ Tree,那你知道 B+Tree 的叶子节点都可以存哪些东西吗?

  • 聚簇索引和非聚簇索引,在查询数据的时候有区别吗?

  • 刚刚你提到主键索引查询只会查一次,而非主键索引需要回表查询多次。是所有情况都是这样的吗?非主键索引一定会查询多次吗?

联合索引、最左前缀匹配

  • 你们在创建索引的时候都会考虑哪些因素呢?你们有用过联合索引吗?

  • 那你们在创建联合索引的时候,需要做联合索引多个字段之间顺序你们是如何选择的呢?

索引下推、查询优化

  • 你知道在 MySQL 5.6 中,对索引做了哪些优化吗?

  • 你们创建的那么多索引,到底有没有生效,或者说你们的 SQL 语句有没有使用索引查询你们有统计过吗?

  • 那排查的时候,有什么手段可以知道有没有走索引查询呢?

  • 那什么情况下会发生明明创建了索引,但是执行的时候并没有通过索引呢?

  • 哦,索引有关的知识我们暂时就问这么多吧。你们线上数据的事务隔离级别是什么呀?

总结

“免费”、“强大”、“成熟”,这三点就足以使得 MySQL 站在数据库领域的顶峰,笑傲江湖。所以,精通 MySQL,提升自我竞争力,定能缩短与一线大厂的距离。

以上文章内容中,涉及到的任何 MySQL 相关的资料,均能免费分享给大家,资料已整理成文档,免费获取,需要的小伙伴可以+ VX: mxk6072

用户头像

钟奕礼

关注

还未添加个人签名 2021-03-24 加入

还未添加个人简介

评论

发布
暂无评论
三年Crud,一周学会MySQL,助我拿到阿里研发Offer_程序员_钟奕礼_InfoQ写作社区