首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
高性能MySQL
岛上码农
创建于2021-05-10
订阅专栏
MySQL 查询。索引、数据表设计等优化精选文章。
等 170 人订阅
共38篇文章
创建于2021-05-10
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
MySQL 查询优化(十一):使用 MySQL 自定义变量进行查询优化
MySQL 的联合查询还能实现懒加载,你知道吗?利用自定义变量,实现查询性能优化,虽然冷门但不偏门!
MySQL 查询优化(九):分页查询优化技巧
在有分页查询的应用中,包括 LIMIT 和 OFFSET 的查询十分常见,而且几乎每个都会有一个 ORDER BY 子句。如果使用索引排序的话将对性能优化十分有帮助,否则服务端需要做很多文件排序。
MySQL 查询优化(八):分组查询该怎么优化?
分组查询时最好是使用索引列分组,若无需指定次序可以使用 ORDER BY NULL 进行优化。倘若不按索引列分组的时候,则需要考虑变通的办法,并且考虑是否要使用子查询替代。
MySQL查询优化(七):MySQL 的 Count (*)真的很低效?
优化COUNT函数的查询在 MySQL 中最容易被误解的话题中能够排进前10名,我们可以在网上搜索了解更多关于 COUNT 优化的误解信息。在进行优化前,理解 COUNT 到底做了什么很重要。
MySQL 查询优化(六): MySQL 的查询优化排序优化机制
MySQL 有时候会在排序的时候直接丢弃掉不需要的数据行来提高效率。不管怎么样,排序也需要小心使用,很可能会导致存储占用的飙升最终导致系统负荷过大。
MySQL 查询优化(五):一文看懂联合查询优化机制
联合查询优化器视图以最低完成代价构建一个查询执行树。如果有可能,它会从全部的单表计划开始,检查所有可能的子树组合。
MySQL 查询优化(四):深入了解 MySQL查询优化处理过程
MySQL查询优化需要经过解析、预处理和优化三个步骤。在这些过程中,都有可能发生错误。本篇文章不会深入讨论错误处理,而是帮助理解 MySQL 执行查询的方式,以便可以写出更好的查询语句。 解析器和预处
MySQL查询优化(三):深度解读 MySQL客户端和服务端协议
如果需要从 MySQL 服务端获得很高的性能,最佳的方式就是花时间研究 MySQL 优化和执行查询的机制。一旦理解了这些,大部分的查询优化是有据可循的,从而使得整个查询优化的过程更有逻辑性。
MySQL查询优化(二):重写查询语句的三种策略
在优化存在问题的查询时,我们需要改变方式去获取查询结果,从而提高查询性能,减少锁表。通过三种策略重写查询语句可以提升查询效率。
MySQL查询优化(一):如何分析查询性能?
在尝试编写快速的查询语句前,务必记住快速都是基于响应时间进行评估的。查询语句是一组由多个子任务组成的大任务,每一个子任务都会消耗时间。为了优化查询,我们需要尽可能地减少子任务的数量,或者让子任务执行得更快。 注:有些时候我们也需要考虑查询对系统其他查询的影响,在这种情况下,还需…
高性能索引优化策略(八):减少索引和数据的碎片化
二叉树索引可能导致碎片化,进而影响数据库性能。碎片化的索引存储性能很弱或在磁盘上不是有序的。使用二叉树索引去超找页节点时本身就需要随机的磁盘访问,因此随机访问是二叉树索引的特性,而并不是异常。然而,如果页节点在物理上是有序的并且紧密存储,那查询的性能依旧是更好的。如果不是这样的…
高性能索引优化策略(七):索引和数据表维护
使用合适的数据类型完成数据表创建和建立索引后,工作并没有完结——你需要去维护数据表和索引以保证它们运行良好。数据表维护的主要目的是查找和修复冲突,维护精确的索引统计和减少碎片。 数据表最糟糕的事情就是发生冲突。使用MyISAM存储引擎时,通常因为崩溃导致冲突。然而,当存在硬件故…
高性能索引优化策略(五):为什么覆盖索引的性能很高?
一个通常的建议是为WHERE条件创建索引,但这其实是片面的。索引应当为全部查询设计,而不仅仅是WHERE条件。索引确实能有效地查找数据行,但MySQL也能够使用索引获取列数据,这样根本不需要去读取一行数据。毕竟,索引的叶子节点包含了索引对应的值。当年能够读取索引就能够拿到想要的…
高性能索引优化策略(四):聚集索引和非聚集索引数据结构及优劣对比
聚集索引并不是一个单独的索引类型,实际上是一种数据存储的方式。聚集索引的实现细节各有不同,在InnoDB引擎中,聚集索引实际上是将索引和数据行使用同样的结构存储在一个二叉树中。 如果数据表中有聚集索引,则数据行实际上是存在所以的叶子节点。“聚集”的形式实际是指相邻键值的数据行是…
高性能索引优化策略(三):索引列的次序该如何排列更合适?
在众多困扰索引使用的原因中,其中最常见的一个是索引中列的次序。正确的次序依赖于使用索引的查询,因此需要考虑怎样选择索引次序以便数据行的排序火分组能够从中受益(这个仅在二叉树索引有用,哈希索引和其他类型的索引并没有像二叉树索引那样对数据进行排序)。 在二叉树索引中多列的顺序意味着…
高性能索引优化策略(二):多个索引是建立独立索引还是建联合索引?
通常会对多列索引缺乏理解,常见的错误是将很多列设置独立索引,或者是索引列使用错误的次序。我们在下一篇讨论索引列次序的问题,首先看一下多列独立索引的情况,以下面的表结构为例: 使用这种索引策略通常是一些权威的建议(例如在WHERE条件中用到的条件列增加索引)的结果。事实上,这是大…
高性能索引优化策略(一):隔离数据列和前缀索引
正确地创建和使用索引对于查询性能十分重要。由于存在很多种特殊场景的优化和行为,因此有很多种方式去有效选择和使用索引。因此,决定如何使用索引这一项技能是需要经验和时间的积累去培养的。以下会介绍一些如何有效使用索引的方法。 通常,我们会发现查询语句会妨碍MySQL使用索引。除非在查…
高性能索引优化策略(六):通过案例快速了解如何构建数据表索引
理解索引概念最简单的方式是通过一个案例来进行,以下就是这样的一个案例。 假设我们需要设计一个在线的约会网站,这个网站的用户资料有许多列,例如国籍、省份、城市、性别、年龄、眼睛颜色等等。这个网站必须支持通过多种组合方式搜索用户资料。同时,也需要支持支持排序和根据用户最近在线时间和…