首页 > 数据库 >总结我的 MySQL 学习历程,给有需要的人看

总结我的 MySQL 学习历程,给有需要的人看

时间:2022-11-24 15:37:04浏览次数:39  
标签:总结 DBA 数据库 SQL 学习 MySQL 历程 优化

作者| 慕课网精英讲师 马听

你好,我是马听,现在是某零售公司的 MySQL DBA,身处一线的我表示有很多话要讲。

我的MySQL学习历程

在我大三的时候,就开始接触到 MySQL 了,当时我也是从最基础的 MySQL 知识(比如建表、字段修改、增删查改等)开始学习的,当学完简单的语句之后,感觉特有成就感:),认为自己在 MySQL 方面已经很强了,感觉 MySQL 用起来无非也就这些内容,还能有什么?

直到刚毕业入职某互联网公司时,公司电商业务的数据库突然出现高负载报警,并且业务反应很多接口都出奇的慢,这时一位数据库运维同事马上连上数据库,在执行了几条命令后,就确定了是慢查询导致数据库高负载的,通过改写 SQL 语句能让性能得到改善。他马上通知开发改写了代码,发完版之后负载立马下来了。

此时,我了解到身处前线的我们,随时随地会遇到各种“麻烦”,而面临这些境遇就要求我们必须系统的提高和优化对于数据库的管理。

比如,进行数据导入时,如何进行优化 ?工作中有一次,开发一个同事想在他的测试环境导入一张大表,他发现每次都要花半小时以上,就找到了我帮忙,看完他的 MySQL 参数配置后,我会发现其实有些参数可以调整的,调整完之后,让他再继续测试,发现不到 10 分钟就搞定了,是不是高效了很多,MySQL 的优化中有太多这样例子了。

那俗话说:磨刀不误砍柴工,我们花越多的时间来学习,其实也是为提高工作时效率,节约了我们更多的时间,下面我们一起来深入研究下 MySQL 优化和提升时里面的要点和细节吧。

哪些人需要学习MySQL优化

说了这么多,那究竟有哪些人需要学习 MySQL 优化呢?

首先,当然 DBA 是必须学习的,因为分析慢查询,并且去优化慢查询是 DBA 的工作之一。

其次,开发也应该学习 MySQL 优化,我以前遇到过一个开发能力比较强的同事,去 BAT 某大厂面试开发工作,其他技术基本没问题,而当问到 MySQL 索引和事务以及优化相关问题时,就卡住了,最终错失进入大厂的机会,人生真的好难…泪奔。不单单面试,在工作中,如果开发懂得数据库优化,很多情况就不用 DBA 来审核找出问题再回过头去改代码,会大大节约了时间成本,完美 :)

当然,其他对于 MySQL 感兴趣的人,也是可以学学优化技巧的,欢迎欢迎欢迎,让你的 SQL 执行效率更高。

提升MySQL水平方式

分享下我自己学习 MySQL 的历程,小伙伴们有需要的可以借鉴下,在这里,总结一下我的 MySQL 提升水平的方式:

如果你没有 MySQL 的基础,建议可以看下面两本书籍,看完之后,可以简单处理一些优化:

《MySQL 必知必会》:主要讲 SQL 的写法; 《深入浅出 MySQL》:比较全面的讲解了 MySQL 的基础知识,也涉及了一些优化。 如果已经对 MySQL 比较熟悉了,可以看下面的书籍,你会对索引和锁以及事务等有全新的看法:

《高性能 MySQL》:里面讲了很多 MySQL 优化技巧; 《MySQL 技术内幕》:讲解了很多 MySQL 原理,强力推荐给想深入学习 MySQL 的同学; 《MySQL 内核:InnoDB 存储引擎》:想深入研究 MySQL 内核及原理的可以看看; 《MySQL 运维内参》:对 MySQL 源码感兴趣,可以入手; 《MySQL Internals Manual》 《MySQL 5.7 Reference Manual》 如果已经掌握了 MySQL 的基础知识,大家可以按照如下知识脉络进行深入学习:

最后,希望大家都能学会MySQL,拿高薪! ​

标签:总结,DBA,数据库,SQL,学习,MySQL,历程,优化
From: https://blog.51cto.com/u_15771948/5884027

相关文章

  • mysql的配置文件和逻辑架构
    二进制日志log-bin——主从复制——log-bin=mysql-bin错误日志log-error——默认是关闭的,记录严重的警告和错误信息,每次启动和关闭的详细信息等。——log-error=var/log/m......
  • mysql 表字段约束条件
    目录无符号、零填充非空默认值唯一值主键自增外键前戏关系的判断一对多的关系外键字段的建立多对多关系一对一关系无符号、零填充unsigned idintunsignedzerofill i......
  • MySQL数据库管理
    一、MySQL数据库管理1、库和表行(记录):用来描述一个对象的信息列(字段):用来描述对象的一个属性2、常用的数据类型int:整型float:单精度浮点4字节32位double:双精度浮点......
  • [MySQL] 报错 SELECT list is not in GROUP BY clause and contains nonaggregated co
    报错Expression#1ofSELECTlistisnotinGROUPBYclauseandcontainsnonaggregatedcolumn'XXX'whichisnotfunctionallydependentoncolumnsinGROUPBY......
  • 浅谈mysql高性能调优(一)
    mysql的问题介绍(一)mysql索引的实现原理和数据结构mysql索引设计的技巧mysql聚簇索引和非聚簇索引的区别mysql索引的中级调优方案mysql分布式集群的设计原则mysql如何实现高......
  • lightdb开启mysql兼容模式
    首先,从www.hs.net/lightdb下载最新版本并在安装时选择oracle模式,如下:  http://www.light-pg.com/docs/LightDB_Install_Manual/13.8-22.3/install.html#guilight......
  • 微服务拆分总结(一)
    微服务要解决的问题:1、可以快速迭代;2、解决三高问题(高并发,高可用,高性能)什么时候拆分微服务,拆分的时机是什么?提交频繁代码冲突;模块之间耦合严重,相互依赖,小功能修改也必须累计......
  • mysql导入导出
    一、导出数据库1、导出完整数据:表结构+数据(abc是数据库)mysqldump-uroot-pabc>abc.sql2、只导出表结构mysqldump-uroot-pabc>abc.sql二、导入数据库1、......
  • Docker安装及MySQL、Redis等配置
    Docker安装(CentOS版本)Docker安装文档:链接1、卸载系统之前的dockersudoyumremovedockerdocker-clientdocker-client-latestdocker-commondocker-latest\docker-......
  • 11月24日内容总结——
    目录主题:字段约束条件一、无符号、零填充二、非空三、默认值四、唯一值五、主键六、自增七、外键前戏八、关系的判断九、一对多关系十、外键字段的建立十一、多对多关系......