mytecdb.com

MySQL在处理group by语句时,最常规的方式是扫描整个表,然后创建一个临时表,使用临时表存储分组和聚合函数的值。但是在一些特别的场景下,通过索引可以避免创建临时表,以获取更好的性能。group by 子句使用索引的先决条件是grou...
MySQL全表扫描在大多数场景下性能都是非常低下的,尤其在表数据量特别大的情况下,全表扫描会耗尽数据库资源,严重时会导致数据库服务不可用,数据库崩溃,因此,业务SQL在发布上线前,应当检查是否会导致全表扫描。1. MySQL全表扫描的原因通...
mysql 官方文档行构造器表达式优化(Row Constructor Expression Optimization)这一节里面,对行构造表达式及其优化进行了介绍,因为用的不多,也没太关注过。但是看了几个示例,发现有一些逻辑还是与预想的不...
函数调用在MySQL内部分为确定性函数和不确定性函数。如果一个函数,对于给定的固定参数值,多次调用,返回的结果值不同,那么这样的函数就称之为不确定性函数,比如RAND(), UUID()。返回的结果值相同,则为确定性函数,比如POW(1,2...
MySQL在处理join查询时,遍历驱动表的记录,把驱动表的记录传递给被驱动表,然后根据join连接条件进行匹配。优化器通常会将更小的表作为驱动表,通过在驱动表上做额外的where条件过滤(Condition Filtering),能够将驱...
MySQL show profile 和 show profiles 命令用于展示SQL语句执行过程中的资源使用情况,包括CPU的使用,CPU上下文切换,IO等待,内存使用等,这个命令对于分析某个SQL的性能瓶颈非常有帮助,借助于show ...
MySQL一直以来提供show profile命令来获取某一条SQL执行过程中的资源使用与耗时情况,这个命令对于分析具体SQL的性能瓶颈有非常大的帮助,但是这个功能在MySQL新的版本里将会被废弃,取而代之的是使用Performance S...
1. 什么是MySQL派生表?派生表(Derived Table),是复杂SQL在执行过程中的中间表,也可认为是临时表,存放SQL执行过程中必不可少的中间数据。通常由跟在from子句或者join子句之后的子查询产生,比如下面两个派生表例子,...
索引是提高查询性能最有效的方式之一,在表结构设计阶段就应当考虑索引的设计,索引也不是越多越好,需要结合具体的SQL、执行频率、数据分布等多个方面综合考虑。本文整理了MySQL索引优化的一些原则、经验和技巧。MySQL的索引实现因存储引擎的差...
表结构优化是MySQL性能优化中的重要一环,性能优化从设计阶段就应该被考虑,良好的表结构设计从一开始就为系统的高性能打下了基础。本文整理了MySQL表结构优化的一些原则、经验和技巧。一、选择合适的存储引擎MySQL存储引擎建议使用InnoD...