首页
学习
活动
专区
圈层
工具
发布

MySQL慢查询记录原理和内容解析

作者 | 高鹏(网名八怪) 出品 | 《深入理解MySQL主从原理32讲》 本文并不准备说明如何开启记录慢查询,只是将一些重要的部分进行解析。...如何记录慢查询可以自行参考官方文档: 5.4.5 The Slow Query Log 本文使用了Percona 版本开启来了参数log_slow_verbosity,得到了更详细的慢查询信息。...一、慢查询中的时间 实际上慢查询中的时间就是时钟时间,是通过操作系统的命令获得的时间,如下是Linux中获取时间的方式 while (gettimeofday(&t, NULL) !...二、慢查询记录的依据 long_query_time:如果执行时间超过本参数设置记录慢查询。 log_queries_not_using_indexes:如果语句未使用索引记录慢查询。...MySQL慢查询的相关的知识,主要解释了慢查询是基于什么标准进行记录的,同时输出中各个指标的含义,当然这仅仅是我自己得出的结果,如果有不同意见可以一起讨论。

4.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL 中 blob 和 text 数据类型详解

    一直没详细介绍过 blob 及 text 类型,虽然这两类数据类型不太常用,但在某些场景下还是会用到的。本篇文章将主要介绍 blob 及 text 数据类型的相关知识。...1. blob 类型 blob(binary large object) 是一个可以存储二进制文件的容器,主要用于存储二进制大对象,例如可以存储图片,音视频等文件。...按照可存储容量大小不同来分类,blob 类型可分为以下四种: 类型 可存储大小 用途 TINYBLOB 0 - 255字节 短文本二进制字符串 BLOB 0 - 65KB 二进制字符串 MEDIUMBLOB...without a key length mysql> alter table tb_text add index idx_b (b); ERROR 1170 (42000): BLOB/TEXT...总结: 本篇文章介绍了 blob 及 text 字段类型相关知识。虽然数据库规范中一般不推荐使用 blob 及 text 类型,但由于一些历史遗留问题或是某些场景下,还是会用到这两类数据类型的。

    8.8K30

    mysql 5.7 溢出页 FIL_PAGE_TYPE_BLOB

    其实代码里面存在 if (page_type == FIL_PAGE_TYPE_BLOB || page_type == FIL_PAGE_SDI_BLOB) 之类的代码基本上就能说明5.7的溢出页(FIL_PAGE_TYPE_BLOB...~但是还是水一篇~FIL_PAGE_TYPE_BLOBFIL_PAGE_TYPE_BLOB 的结构和FIL_PAGE_SDI_BLOB基本上一样, 只不过前者记录的是这一页存在多少数据, 而后者记录的是...不知道为啥这么设计, 没发现它两的优势.好了, 还是来看看FIL_PAGE_TYPE_BLOB的结构吧SIZE: 这个溢出页在本页中记录的大小.PAGENO: 下一页的pageno, 如果是4294967295...('>3LQ',self.read(20))if self.table.mysqld_version_id > 50744: # 8.0环境_tdata = first_blob(self.f,PAGENO...github.com/ddcw/ibd2sql/archive/refs/heads/main.zipunzip main.zipcd ibd2sql-mainpython3 main.py /data/mysql

    60320

    MySQL 子查询 嵌套查询

    MySQL 子查询 嵌套查询 一、带IN关键字的子查询 二、带EXISTS关键字的查询 三、带ANY、SOME 关键字的子查询 四、带ALL 关键字的查询 自言自语 一、带IN关键字的子查询 使用IN...关键字进行子查询的时候,内层查询语句仅仅返回一个数据列。...语法格式: SELECT 查询字段 FROM 表名 WHERE 字段名 [NOT] IN (SELECT 语句); 二、带EXISTS关键字的查询 意思就是内层的select查到了(至少查到了一行)才进行查询...,没有查到就不进行查询。...只要满足内层子查询中的任何一个比较条件,就返回一个结果作为外层查询的条件。 (满足任意一个) 语法格式: SELECT 查询字段 FROM 表名 WHERE 字段名 比较运算符(>,<..)

    17.5K40

    MySQL(联合查询、子查询、分页查询)

    目录 联合查询 子查询 分页查询 联合查询 联合查询是指将多个查询结果合并成一个结果集(二维表),通常出现在统计分析中。 语法: 查询语句1 UNION 查询语句2 UNION ......查询语句N 注意: 1.所有查询语句的返回结果的列数必须相等 2.每列的数据类型必须一致,【查询语句1中字段列表的类型必须和查询语句2中的字段列表类型对应且一致】 代码实例: SELECT user_id...子查询分类: 按结果及行数分: 1、 标量子查询(单行子查询:结果集只有一行一列) 2、 列子查询(多行子查询:结果集多行一列) 3、 行子查询(结果集有多行多列) 4、 表子查询(结果集有多行多列)...按出现位置分: 1、 SELECT 后面:只能出现标量子查询 2、 FROM 后面:表子查询(查询结果必须起别名) 3、 WHERE|HAVING:支持标量子查询,列子查询,行子查询 4、 EXISTS...后面:支持表子查询 代码实例: 查询订单信息,并显示用户姓名 SELECT a.

    21.9K20

    MySQL 大对象(BLOB)和字符串的分身术

    MySQL 字段类型很多,我从 phpMyAdmin 5.1.1(一种开源的 MySQL 可视化工具)里找到了配置的所有 MySQL 字段类型,一共有 41 种。...截止目前为止,我写的十几篇公众号文章,有多篇文章里写到了 MySQL 对于大对象(BLOB)、定长字符串、变长字符串的特殊处理逻辑。...今天我们就来详细说说大对象、定长 & 变长字符串对应着 MySQL 中的哪些字段类型? 本文内容基于 MySQL 5.7.35 源码。...Field_blob、Field_json、Field_geom 承载了 17 个字段类型的实现,那 MySQL 怎么区分这 3 个类实例化之后,到底对应着哪种类型的字段呢?...空间类型以 Field_geom 类实现,也继承了 Field_blob 类,字段内容为二进制,用 4 字节存储内容长度,相当于 LONGBLOB 类型。

    1.8K40

    mysql的查询、子查询及连接查询

    一、mysql查询的五种子句 where(条件查询)、having(筛选)、group by(分组)、order by(排序)、limit(限制结果数) 1、where常用运算符...函数,那么它是取最大的,而语句中使用了group by 分组,那么goods_name并 没有使用聚合函数,它只是cat_id下的第一个商品,并不会因为shop_price改变而改变 mysql...查出所有学生的挂科情况 select name,score<60 from stu; #这里scoremysql...后面的表达式,把表达式放在每一行中,看是否成立 2、字段(列),理解为变量,可以进行运算(算术运算和逻辑运算) 3、 取出结果可以理解成一张临时表 二、mysql...,【即左右连接的结果去除null项后的并集(去除了重复项)】 mysql目前还不支持 外连接(即左右连接结果的并集,不去除null项) 语法:select n1,n2,n3

    17.5K80

    mysql连接查询与分组查询

    连表查询在项目中用的很频繁,今天在这里总结一下 假设两张表 user: id name dept_id dept: id dept_name 交叉连接(cross join) 交叉连接是一个笛卡尔积的结果...t1 union select * from t2 t1id t1str 1 1 2 2 3 3 2 a 3 b t1和t2的结果集被显示在了一起,默认以t1的字段为准,这里要注意: 使用union查询的时候...,两个语句查询出的字段数目必须要相同 查询的结果中两个语句重复的数据会被合成一条,如果要显示重复的记录,就需要使用 union all 全连接(full join) 我查了一下资料,mysql并不支持全连接...from t1 left join t2 on t1.t1id = t2.t2id t1id t1str t2id t2str 1 1 null null 2 2 2 a 3 3 3 b 参考资料 mysql...多表查询 mysql联表查询总结

    6.1K20

    MySQL 查询优化

    组合索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。 覆盖索引(Covering Indexes) 就是直接走的索引,直接在内存中就拿到值,不需要查询数据库。...在什么是字段上建立索引,需要根据查询条件而定,不要一上来就建立索引,浪费内存还有可能用不到。 5. 大字段(blob)不要建立索引,查询也不会走索引。 6....写入比较频繁的时候,不能开启MySQL的查询缓存,因为在每一次写入的时候不光要写入磁盘还的更新缓存中的数据。 10. 建索引的目的: 1)加快查询速度,使用索引后查询有迹可循。...什么时候开MySQL的查询缓存,交易系统(写多、读少)、SQL优化测试,建议关闭查询缓存,论坛文章类系统(写少、读多),建议开启查询缓存。 18. Explain 执行计划只能解释SELECT操作。...如果MySQL估计使用全表扫描要比使用索引快,则不使用索引。 26. 使用UNION ALL 替换OR多条件查询并集。 27.

    4.5K111
    领券