社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

包邮送 8 本《快速入门 MySQL 》

Python编程 • 9 月前 • 118 次点击  

查看文章尾部

参与活动

互联网企业在近20年的崛起过程中,最应该感谢的是开源软件提供的支撑。包括操作系统、数据库、Web Server 在内的各种开源技术,以低成本的方式协助企业快速推出服务,赢得商业上的成功。
互联网时代最重要的资源是数据,所以存储数据的数据库是企业最重要的基础设施。有一款开源关系型数据库是大多数企业搭建服务环境的首选,那就是MySQL
说 MySQL 是全世界最流行的关系型数据库一点都不夸张,因为它的市场占有率达到 43% 以上。也许你看这篇文章时产生的数据,就在用 MySQL 管理。
MySQL 能从一众关系型数据库产品中脱颖而出,并不仅仅是因为它开源免费,还在于其高效的读写性能、长时间稳定运行的能力、部署简便灵活,以及活跃的社区支持。大量的使用与反馈也助推 MySQL 更加成熟,终有如今的地位。
数据库不仅对企业重要,对互联网行业里的技术人来说也同样重要。
有的朋友可能会有疑问:“我不是做数据库的,只要会写 SQL 语句就行了,其他的难题就交给DBA(数据库管理员)解决是不是就可以了?”

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

01

用好 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 索引的两种类型:聚簇索引与二级索引。

新建 B+树

理解了 InnoDB 的索引技术的原理,书中就对创建和使用索引提出了具体的建议。因为 B+ 树索引在时间和空间上都有开销,所以书中提出了具体的建议,包括只为用于搜索、排序或分组的列创建索引、索引列的类型尽量小、尽量使用覆盖索引进行查询等。
有了关于数据页结构与 B+ 树索引的知识,就可以深入讲解查询优化技术了。从基于成本的优化到基于规则的优化,还说明了 EXPLAIN 与 optimizer trace 工具辅助分析查询优化的方法。掌握了这些妙招,相信做开发的朋友再也不会对如何优化慢查询感到无从下手了。

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

04

结语

要特别说一下《MySQL是怎样使用的:快速入门 MySQL》和《MySQL是怎样运行的:从根儿上理解MySQL》这两本书的作者——“小孩子4919”,他是一位对技术抱有极大热情的程序员。
为了写这两本书,他甚至辞职潜心创作,从书中原创内容的细节可以看出来,这两本书是倾注了大量心血才写成的。这是一名技术人最纯粹的分享,相信也会有更多技术人因为这两本书而获得更好的发展。
在职业生涯的发展上,技术人总有一天会走上更高的岗位,接受更难的挑战。当那一天到来时,你在设计系统架构或者部署高可用集群时,就可以通过对 MySQL的透彻理解自信地完成工作。
最后,希望你也成为一名愿意积极分享的技术人。




—END—


 包邮送 8 本

《MySQL是怎样使用的:快速入门MySQL》

《MySQL是怎样运行的:从根儿上理解MySQL》

任选一本


▲点击卡片回复「抽奖」参与

活动截止时间:2023年8月16日 10:00

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/160411
 
118 次点击