57°极客闷骚
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  •   
  •   

04 非结构存储:用好 JSON 这张牌

04 非结构存储:用好 JSON 这张牌前面几讲,我已经带你了解了 MySQL 数据库中常见的 3 种类型:数字类型、字符串类型和日期类型。然而,它们都属于传统关系型设计的范畴。 关系型的结构化存储存在一定的弊端,因为它需要预先定义好所有的列以及列对应的类型。但是业务在发展过程中,或许需要扩展单个列的描述功能,这时,如果能用好JSON 数据类型,那就能打通关系型和非关系型数据
2022-08-23
专栏 > MySQL实战宝典

05 表结构设计:忘记范式准则

05 表结构设计:忘记范式准则前面几讲我虽然带你了解了数字类型、字符串、日期类型,以及非结构化的 JSON 类型,但也只是每条记录每个字段的选择。 而我们在对一张表进行设计时,还要遵守一些基本的原则,比如你经常听见的“范式准则”。但范式准则过于理论,在真实业务中,你不必严格遵守三范式的要求。而且有时为了性能考虑,你还可以进行反范式的设计,比如在数据仓库领域。这一讲我就会带你了
2022-08-23
专栏 > MySQL实战宝典

06 表压缩:不仅仅是空间压缩

06 表压缩:不仅仅是空间压缩前面几讲,我们从最早的各种列类型的选择,过渡到表结构的设计,相信学完前面几讲,你已经能够较好地设计出各种业务表,比如用户表、订单表。既然我们已经掌握了表的逻辑设计,那这一讲就继续学习不同业务表的物理存储设计。 据我观察,很多同学不会在表结构设计之初就考虑存储的设计,只有当业务发展到一定规模才会意识到问题的严重性。而物理存储主要是考虑是否要启用表的
2022-08-23
专栏 > MySQL实战宝典

07 表的访问设计:你该选择 SQL 还是 NoSQL?

07 表的访问设计:你该选择 SQL 还是 NoSQL?到目前为止,我已经带你学习了表结构的字段类型选择和表的物理存储设计,这一讲我们将继续学习表的访问选型。这样一来,字段类型选择 + 物理存储设计 +表的访问设计,就完成了表结构设计的所有内容。 前面 6 讲,我演示的都是通过 SQL 的方式对表进行访问,但从 MySQL 5.6 版本开始,就支持除 SQL 外的其他访问方式
2022-08-23
专栏 > MySQL实战宝典

08 索引:排序的艺术

08 索引:排序的艺术在模块一中,我们学习了怎么根据合适的类型正确地创建一张表,但创建的表不能立刻用在真正的业务系统上。因为表结构设计只是设计数据库最初的环节之一,我们还缺少数据库设计中最为重要的一个环节——索引设计,只有正确设计索引,业务才能达到上线的初步标准 。 所以模块二我会讲索引的设计、业务应用与调优等案例。今天我们先来学习关系型数据库最核心的概念——索引,对索引做一
2022-08-23
专栏 > MySQL实战宝典

10 组合索引:用好,性能提升 10 倍!

10 组合索引:用好,性能提升 10 倍!在前两讲中,我带你学习了索引的数据结构和索引组织表,相信你应该掌握了怎么在 MySQL 数据库中创建索引以及一些基本的使用技巧。 当然,前两讲我举的例子都是基于一个列进行索引排序和使用,比较简单。在实际业务中,我们会遇到很多复杂的场景,比如对多个列进行查询。这时,可能会要求用户创建多个列组成的索引,如列a 和 b 创建的组合索引,但究
2022-08-23
专栏 > MySQL实战宝典

09 索引组织表:万物皆索引

09 索引组织表:万物皆索引上一讲,我已经带你了解了 B+ 树索引的基本概念,以及 MySQL 中怎么对 B+ 树索引进行基本的管理。为了让你进一步深入了解 MySQL 的 B+树索引的具体使用,这一讲我想和你聊一聊 MySQL InnoDB 存储引擎的索引结构。 InnoDB 存储引擎是 MySQL 数据库中使用最为广泛的引擎,在海量大并发的 OLTP 业务中,InnoDB
2022-08-23
专栏 > MySQL实战宝典

13 子查询:放心地使用子查询功能吧!

13 子查询:放心地使用子查询功能吧!今天我想和你聊一聊“子查询”。 上一讲,我提到了一种复杂的 SQL 情况,多表间的连接,以及怎么设计索引来提升 JOIN 的性能。 除了多表连接之外,开发同学还会大量用子查询语句(subquery)。但是因为之前版本的MySQL 数据库对子查询优化有限,所以很多 OLTP业务场合下,我们都要求在线业务尽可能不用子查询。 然而,MySQL
2022-08-23
专栏 > MySQL实战宝典

11 索引出错:请理解 CBO 的工作原理

11 索引出错:请理解 CBO 的工作原理在前三讲中,我们学习了 B+ 树索引的原理、索引组织表的实现,组合索引的使用方法,相信你对 B+ 树索引的使用已经有了一定的了解。 而在实际工作中,我也经常会遇到一些同学提出这样的问题:MySQL 并没有按照自己的预想来选择索引,比如创建了索引但是选择了全表扫描,这肯定是 MySQL数据库的 Bug,或者是索引出错了。 当然不是! 这
2022-08-23
专栏 > MySQL实战宝典

12 JOIN 连接:到底能不能写 JOIN?

12 JOIN 连接:到底能不能写 JOIN?前面几讲,我带你学习了索引和优化器的工作原理,相信你已经可以对单表的 SQL 语句进行索引的设计和调优工作。但除了单表的 SQL 语句,还有两大类相对复杂的SQL,多表 JOIN 和子查询语句,这就要在多张表上创建索引,难度相对提升不少。 而很多开发人员下意识地认为 JOIN 会降低 SQL 的性能效率,所以就将一条多表 SQL
2022-08-23
专栏 > MySQL实战宝典
1…56789…25

搜索

Blog WeiBo
蜀ICP备19038130号-1