分类: 数据库

61 篇文章

InnoDB的存储结构
索引组织表 在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table)。 在InnoDB存储引擎表中,每张表都有个主键(Primary Key),如果在创建表时没有显式地定义主键,则InnoDB存储引擎会按如下方式选择或创建主…
一条SQL更新语句是如何执行的?
前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。 那么,一条更新语句的执行流程又是怎样的呢? 如果要将 ID=2 这一行的值加 1,SQL 语句就会这么写: upda…
一条SQL查询语句是如何执行的?
MySQL数据库作为优秀的关系型开源数据库,受到所有人的青睐,我们日常工作中,和其打交道的次数十分频繁,那么你知道我们在写sql的时候,MySQL内部是如何执行的吗?接下来我们就一起探讨一下吧。 MySQL 基本架构 以这条sql语句为例: select * from T where ID=10; …
offset的优化探索
前言 首先明确 limit 和 offset 的使用方式: limit y 表示: 读取 y 条记录 limit x, y 表示: 跳过 x 条记录,读取 y 条记录 limit y offset x 表示: 跳过 x 条记录,读取 y 条记录 准备 SELECT COUNT(*) as coun …
Redis分布式锁实现原理
命令 SET key value [NX] [XX] [EX <seconds>] [PX [millseconds]] 必选参数说明 SET:命令 key:待设置的key value: 设置的key的value 可选参数说明 NX:表示key不存在才设置,如果存在则返回NULL XX:…
MySQL问题排查步骤
通过 show status 命令了解 SQL 执行次数 首先,我们可以使用 show status 命令查看服务器状态信息。show status 命令会显示每个服务器变量 variable_name 和 value,状态变量是只读的。如果使用 SQL 命令,可以使用 like 或者 where …
MySQL窗口函数
简介 MySQL从8.0开始支持窗口函数,这个功能在大多商业数据库和部分开源数据库中早已支持,有的也叫分析函数。 窗口是什么 窗口的概念非常重要,它可以理解为记录集合,窗口函数也就是在满足某种条件的记录集合上执行的特殊函数。对于每条记录都要在此窗口内执行函数,有的函数随着记录不同,窗口大小都是固定的…
MySQL中count(1)、count(*) 与 count(列名) 的区别
关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT。 但是,就是这个常用的COUNT函数,却暗藏着很多玄机,尤其是在面试的时候,一不小心就会被虐。不信的话请尝试回答下以下问题: > 1、COUNT有几种用法? > 2、COUNT(字段名)和COUNT(*)…