吃透这款最流行的数据库,技术生涯就稳了

news2024/9/20 1:07:18

名字:阿玥的小东东

学习:Python、C/C++

主页链接:阿玥的小东东的博客_CSDN博客-python&&c++高级知识,过年必备,C/C++知识讲解领域博主

目录

用好 MySQL 是技术人的基本盘

打稳底盘:学会使用 MySQL

成为高手:摸透底层,MySQL 进阶

结语

本期送书


互联网企业在近20年的崛起过程中,最应该感谢的是开源软件提供的支撑。包括操作系统、数据库、Web Server 在内的各种开源技术,以低成本的方式协助企业快速推出服务,赢得商业上的成功。

互联网时代最重要的资源是数据,所以存储数据的数据库是企业最重要的基础设施。有一款开源关系型数据库是大多数企业搭建服务环境的首选,那就是MySQL

说 MySQL 是全世界最流行的关系型数据库一点都不夸张,因为它的市场占有率达到 43% 以上。也许你看这篇文章时产生的数据,就在用 MySQL 管理。

MySQL 能从一众关系型数据库产品中脱颖而出,并不仅仅是因为它开源免费,还在于其高效的读写性能、长时间稳定运行的能力、部署简便灵活,以及活跃的社区支持。大量的使用与反馈也助推 MySQL 更加成熟,终有如今的地位。

数据库不仅对企业重要,对互联网行业里的技术人来说也同样重要。

有的朋友可能会有疑问:“我不是做数据库的,只要会写 SQL 语句就行了,其他的难题就交给DBA(数据库管理员)解决是不是就可以了?”

还真是不可以,我们来说说这是为什么。

用好 MySQL 是技术人的基本盘

在技术人的职业生涯中,除了专注于数据库技术的 DBA,无论是做开发岗、运维岗还是测试岗,也都需要透彻了解 MySQL,因为决定系统服务质量的关键节点就在这里。

如果程序员只会写 SQL 语句,慢查询影响了用户体验,不会优化怎么行?对于运维来说,如果不清楚 MySQL 的底层原理,怎么实施主从同步、读写分离,做好数据备份和恢复呢?

所以,熟悉 MySQL 就和掌握编程语言一样重要,是技术人的职业技能基本盘中重要的一部分。

但是不经过系统化的学习,技术人很可能会掉进一个陷阱,就是对于搜索得来的结果不加分辨地去使用。可想而知,要么是别人的方案在自己的环境里不适用,要么解决一个问题又引入新的问题,疲于应付。

不想让 MySQL 成为职业生涯的瓶颈,那就静下心来学透它吧。不必畏惧网上浩如烟海的资料,要筑牢 MySQL 的基本盘,看两本好书就够了。这两本书分别是《MySQL是怎样使用的:快速入门MySQL》《MySQL是怎样运行的:从根儿上理解MySQL》

前一本是小白入门,后一本是高手进阶。这两本书不是堆砌术语的枯燥说明书,而是相当生动有趣,有示例有代码,有图有真相,不信你翻开看看。

02

打稳底盘:学会使用 MySQL

如果你是零基础的朋友,看到这里请不要放弃,因为这一章就是专门为你准备的。

MySQL 属于关系型数据库,那么一定要把关系型数据库的理论学完才能上手实操吗?完全不必,看《MySQL是怎样使用的:快速入门MySQL》就可以。看这直白的书名就知道,它注重的就是从实践入手,以练促学

在学习本书时,可以分为三个阶段:

▮ 安装 MySQL 服务。书中详细描述了在 Windows 平台上的安装过程,并说明如何启动与关闭服务;

▮ 创建数据库与表。书中说明了命令行工具的使用方法,学会使用MySQL客户端程序连接数据库服务。接下来执行创建数据库,定义表数据类型、创建数据表,插入一些测试数据等任务;

▮ 掌握查询数据的方法。SQL 是通用的结构化查询语言,应用系统通过 SQL 取得数据并呈现出来。书中详细说明了分组查询、子查询、连接查询、并集查询等技术,这是学习者要投入最多的时间去反复练习和熟练运用的知识。

能将一个数据查询请求快速编写为一条 SQL 语言指令,使用 MySQL 的底盘就打稳了。再进一步,如果要优化复杂应用系统的查询效率,解决慢查询问题的瓶颈,那就一定要知道 MySQL 的底层知识。

让我们继续前进,成为 MySQL 的高手吧。

03

成为高手:摸透底层,MySQL 进阶

MySQL 是一款开源软件,对于喜欢追根究底的朋友来说,一头扎到代码里去就是摸透底层最直接的办法。但我不建议你这样做,因为 MySQL 有着 2000 多万行代码,体量巨大,架构十分复杂,贸然进入只会陷在代码的迷宫里。

要怎么摸透 MySQL 的底层呢?一个好办法就是站在前行者的肩膀上来学习。现在就可以来看《MySQL是怎样运行的:从根儿上理解MySQL》了。我们一起在书中探索一下MySQL 的根上都是什么。

数据库软件最重要的核心部件是存储引擎,MySQL 默认使用的是 InnoDB 存储引擎。InnoDB 被设计为处理大容量数据时可以最大化性能,也就是说在 CPU 运行周期内尽可能多地计算数据。

InnoDB 本身的架构和实现是非常复杂的,但书中没有一上来就列举一堆让人眼花缭乱的概念,而是从 InnoDB 的页结构说起。以 COMPACT 和 REDUNDANT 行格式为例,说明一条记录是如何被存储的。

 清楚了数据的存储格式,接下来最重要的议题就是 InnoDB 实现数据快速查询的原理——B+树索引。书中先对 B+树的数据结构与算法进行了介绍,然后说明了 InnoDB 索引的两种类型:聚簇索引与二级索引。

理解了 InnoDB 的索引技术的原理,书中就对创建和使用索引提出了具体的建议。因为 B+ 树索引在时间和空间上都有开销,所以书中提出了具体的建议,包括只为用于搜索、排序或分组的列创建索引、索引列的类型尽量小、尽量使用覆盖索引进行查询等。

有了关于数据页结构与 B+ 树索引的知识,就可以深入讲解查询优化技术了。从基于成本的优化到基于规则的优化,还说明了 EXPLAIN 与 optimizer trace 工具辅助分析查询优化的方法。掌握了这些妙招,相信做开发的朋友再也不会对如何优化慢查询感到无从下手了。

本书还对 InnoDB 的 Redo、Undo、锁等重要议题进行了同样细致入微的说明。把这本书啃透,无论是程序员、运维还是 DBA,以后再遇到 MySQL 相关的任何问题,都必定能一眼看穿本质,难题在谈笑间就迎刃而解了。

图片

图片

04

结语

要特别说一下《MySQL是怎样使用的:快速入门 MySQL》和《MySQL是怎样运行的:从根儿上理解MySQL》这两本书的作者——“小孩子4919”,他是一位对技术抱有极大热情的程序员。

为了写这两本书,他甚至辞职潜心创作,从书中原创内容的细节可以看出来,这两本书是倾注了大量心血才写成的。这是一名技术人最纯粹的分享,相信也会有更多技术人因为这两本书而获得更好的发展。

在职业生涯的发展上,技术人总有一天会走上更高的岗位,接受更难的挑战。当那一天到来时,你在设计系统架构或者部署高可用集群时,就可以通过对 MySQL的透彻理解自信地完成工作。

最后,希望你也成为一名愿意积极分享的技术人。

本期送书

就是上面那两本任选其一哦

截止日期:8月10日20:00

参与方式:点赞+收藏+评论:人生苦短,我用MySQL!!!

随机抽选多位幸运观众

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/841013.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GraphGT: Machine Learning Datasets for Graph Generation and Transformation

一、文章来源 > Du Y, Wang S, Guo X, et al. Graphgt: Machine learning datasets for graph generation and transformation[C]//Thirty-fifth Conference on Neural Information Processing Systems Datasets and Benchmarks Track (Round 2). 2021.二、概述 1、文章提出…

使用docker搭建GPT服务

不用ChatGPT账号,不用API,直接免费使用上官方原版的GPT4.0! 这个操作主要使用的是GitHub上的一个开源项目freegpt。 通过docker把这个项目打包到本地电脑上,直接就能使用上原版GPT4.0。 第一步:下载Docker 下载网址:docker.com 根据自己的电脑系统下载对应的版本即可 下…

03微服务到底是什么

一句话导读 微服务是一种架构模式,英文翻译 microservice,微服务架构的核心理念是将大型、复杂的单体应用拆分成更小的、自治的组件,每个组件即为一个微服务 目录 一句话导读 一、微服务的定义 二、微服务的特点 1.独立性 2.松耦合 3.可伸…

第三章 图论 No.5最小生成树之虚拟源点,完全图与次小生成树

文章目录 虚拟源点:1146. 新的开始贪心或kruskal性质:1145. 北极通讯网络最小生成树与完全图:346. 走廊泼水节次小生成树:1148. 秘密的牛奶运输 虚拟源点:1146. 新的开始 1146. 新的开始 - AcWing题库 与一般的最小…

鸿蒙边缘计算网关正式开售

IDO-IPC3528鸿蒙边缘计算网关基于RK3568研发设计,采用22nm先进工艺制程,四核A55 CPU,主频高达2.0GHz,支持高达8GB高速LPDDR4,1T算力NPU,4K H.265/H264硬解码;视频输出接口HDMI2.0,双…

JAVA SE -- 第十六天

(全部来自“韩顺平教育”) IO流 一、文件 是保存数据的地方 2、文件流 文件在程序中是以流的形式来操作 流:数据在数据源(文件)和程序(内存)之间经历的路径 输入流:数据从数据…

UltraToolBars Crack,动画菜单和多种显示样式

UltraToolBars Crack,动画菜单和多种显示样式 创建模仿Microsoft Office 2000外观的健壮应用程序。 UltraToolBars包括11个用于创建可自定义工具栏的界面增强控件,包括:个性化菜单、弹出型工具栏、集成选项卡控件等。PictureRegion技术使表单和组件能够采…

基于Java的新闻全文搜索引擎的设计与实现

中文摘要 本文以学术研究为目的,针对新闻行业迫切需求和全文搜索引擎技术的优越性,设计并实现了一个针对新闻领域的全文搜索引擎。该搜索引擎通过Scrapy网络爬虫工具获取新闻页面,将新闻内容存储在分布式存储系统HBase中,并利用倒…

Go 语言面试题(一):基础语法

文章目录 Q1 和 : 的区别?Q2 指针的作用?Q3 Go 允许多个返回值吗?Q4 Go 有异常类型吗?Q5 什么是协程(Goroutine)Q6 如何高效地拼接字符串Q7 什么是 rune 类型Q8 如何判断 map 中是否包含某个 key &#xf…

STM32--GPIO

文章目录 GPIO简介GPIO的基本结构GPIO位结构GPIO模式LED和蜂鸣器LED闪烁工程及程序原码代码: 蜂鸣器工程和程序原码代码 传感器光敏传感器控制蜂鸣器工程代码 GPIO简介 GPIO(General Purpose Input Output)是通用输入/输出口的简称。它是一种…

利用el-button 画圆 ,通过border-radius >50% 就成圆形

<el-button type"danger" style"border-radius: 100%; height: 100px;width: 100px;" plain><span style"font-weight: bold;">工艺分析</span></el-button>通过border-radius >50% 就成圆形。 border-radius: 50% …

STM32基础入门学习笔记:面包板 配件包扩展模块与编程

文章目录&#xff1a; 一&#xff1a;阵列键盘 1.阵列键盘测试程序 KEYPAD4x4.h KEYPAD4x4.c main.c 2.键盘中断测试程序 NVIC.h NVIC.c main.c 二&#xff1a;舵机控制 1.延时函数驱动舵机程序 SG90.h SG90.c main.c 2.PWM(脉冲宽度调制 脉宽调制/占空比)驱动…

极海APM32F003F6P6烧写问题解决记录

工作中遇到的&#xff0c;折腾了好久&#xff0c;因为电脑重装过一遍系统&#xff0c;软件也都重新安装了&#xff0c;所以不知道之前的配置是什么&#xff0c;旧项目代码编译没问题&#xff0c;烧写时疯狂报错&#xff0c;用的是JLink。 keil版本v5.14 win10版本 JLink版本…

PHP8的表达式-PHP8知识详解

表达式是 PHP 最重要的基石。在 PHP8中&#xff0c;几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是"任何有值的东西"。 最基本的表达式形式是常量和变量。当键入"$a 5"&#xff0c;即将值"5"分配给变量 $a。&quo…

RocketMQ Learning

一、RocketMQ RocketMQ的产品发展 MetaQ&#xff1a;2011年&#xff0c;阿里基于Kafka的设计使用Java完全重写并推出了MetaQ 1.0版本 。 2012年&#xff0c;阿里对MetaQ的存储进行了改进&#xff0c;推出MetaQ 2.0&#xff0c;同年阿里把Meta2.0从阿里内部开源出来&am…

【Rust】Rust学习 第四章认识所有权

第四章认识所有权 所有权&#xff08;系统&#xff09;是 Rust 最为与众不同的特性&#xff0c;它让 Rust 无需垃圾回收&#xff08;garbage collector&#xff09;即可保障内存安全。因此&#xff0c;理解 Rust 中所有权如何工作是十分重要的。 4.1 所有权 所有运行的程序都…

行业报告 | 大模型助力产业,持续推进人工智能科技创新

原创 | 文 BFT机器人 随着AI应用深入千行百业&#xff0c;大模型在多个产业领域发挥着积极的作用。英伟达、META、微软等多家公司纷纷宣布AI相关行业的合作和并购机会&#xff0c;加速研发各垂类领域AI大模型&#xff0c;算力需求有望持续向上。 英伟达&#xff1a;宣布5000万…

[oeasy]python0081_[趣味拓展]ESC键进化历史_键盘演化过程_ANSI_控制序列_转义序列_CSI

光标位置 回忆上次内容 上次了解了 新的转义模式 \033 逃逸控制字符 escape 这个字符 让字符串 退出标准输出流进行控制信息的设置 可以设置 光标输出的位置 ASR33中的ALT MODE 是 今天的ESC键吗&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#x1f914; 查询文档…

2023-08-06 LeetCode每日一题(24. 两两交换链表中的节点)

2023-08-06每日一题 一、题目编号 24. 两两交换链表中的节点二、题目链接 点击跳转到题目位置 三、题目描述 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0…

MySQL索引原理以及SQL优化

文章目录 一、索引1.1 索引分类1.1.1 按数据结构分类1.1.2 按物理存储分类1.1.3 按列属性分类1.1.4 按列的个数索引 1.2 索引的代价1.3 索引的使用场景1.4 不使用索引的场景 二、索引的实现原理2.1 索引存储2.2 页2.3 InnoDB中的B树2.4 InnoDB的体系结构2.5 最左匹配原则2.6 覆…