MySQL:count(*) count(字段) 实现上区别
水平有限如有误请指出源码版本:5.7.22欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 继上一篇文章:https://www.jianshu.com/p/ce063e2024ad MySQL:查询字段数量多少对查询效率的影响 我们继续来讨论一下count(*) count(字段) 实现上的区别。注意我们这里都使用Innodb做为存储引擎,不讨论其他引擎。因为了有了前
随笔:MySQL setup_instruments中关于部分信息不能修改
朋友告诉我如下操作不能修改 mysql> update setup_instruments set enabled='no' where name='memory/performance_schema/table_handles'; Query OK, 1 row affected (2.61 sec) Rows matched: 1 Changed: 1 Warnings
MySQL:查询字段数量多少对查询效率的影响
欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 水平有限如有误请指出 源码版本:5.7.22 这个问题是最近一个朋友问我的。刚好就好好看了一下,留下这样的记录。本文给出一些函数接口,末尾给出一些调用堆栈,为感兴趣的朋友做一个参考,也为自己做一个笔记。 一、问题由来我们知道执行计划的不同肯定会带来效率的不同,但是在本例中执行计划完全一致,都是全表扫描,不同的只有
第12节 巧用Event发现问题
巧用Event发现问题 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 有了前面对Event的了解,我们就可以利用这些Event来完成一些工作了。我曾经在学习了这些常用的Event后,使用C语言写过一个解析Event的工具,我叫它‘infobin’,意思就是从binary log提取信息的意思。据我所知虽然这个工具在少数情况下会出现BUG但是还是有些朋友在用。我这里并不是要推
MySQL:show processlist Time负数的思考
欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 如果图片不能显示可查看下面链接:https://www.jianshu.com/p/d636215d767f 一、问题来源这是一个朋友问我的一个问题,问题如下,在MTS中Worker线程看到Time为负数是怎么回事,如下: 二、关于show processlist中的Time实际上show processlist中的信息基
转载:__builtin_expect 说明
作者:大明白链接:https://www.jianshu.com/p/2684613a300f来源:简书 这个指令是gcc引入的,作用是允许程序员将最有可能执行的分支告诉编译器。这个指令的写法为:__builtin_expect(EXP, N)。意思是:EXP==N的概率很大。 一般的使用方法是将__builtin_expect指令封装为likely和unlikely宏。这两个宏的写法
随笔:MySQL中'' ' ' NULL在Innodb存储的区别
欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 如果图片不能显示可查看下面链接:https://www.jianshu.com/p/d636215d767f 一、测试环境mysql> create table testn(a varchar(20),b varchar(20)); Query OK, 0 rows affected (0.43 sec) mysq
深入理解MySQL主从原理(32讲)重点及目录
本文是我的系列 深入理解MySQL主从原理(32讲) 中的重点及目录情况。欢迎大家订阅如下: 第1节:GTID的基本概念 1.1 GTID的作用1.2 GTID的基本表示1.3 server_uuid的生成1.4 GTID的生成1.5 GTID_LOG_EVENT和PREVIOUS_GTIDS_LOG_EVENT简介1.6 gtid_executed表的作用 第2节:my
MySQL:timestamp时区转换导致CPU %sy高的问题
水平有限,如果有误请谅解。 这个问题是一个朋友遇到的@风云,并且这位朋友已经得出了近乎正确的判断,这位下面进行一些描述。 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 一、问题展示下面是问题当时的系统负载如下: 我们可以看到40.4%sy 正是系统调用负载较高的表现,随即朋友采集了perf如下: 接下来朋友采集了pstack给我,我发现大量的线程处于如
随笔:sending data状态包含了使用内部临时表
这是一个我的随笔记录,这些过程非常有用,也非常明显。 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 语句如下: mysql> desc select id,count(*) from t110 group by id; +----+-------------+-------+------------+------+---------------+------
MySQL:如何快速的查看Innodb数据文件
欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 注意:本文输出格式全是16进制格式。 经常有朋友问我一些如何查看Innodb数据文件的问题比如: 如果我是UTF8字符集,如果插入字符‘a’到底占用几个字节 ?主键和普通索引叶子节点的行数据在存储上有哪些区别?如何证明rowid的存在?数据中的NULL值如何存储的?char和varchar在存储上的区别?…… 如果要
MySQL:slave_skip_errors参数对MGR可用性的影响
整个问题提出和测试由 @gc @甘露寺的姑子@乙酉 完成,文档记录由@gc @乙酉完成。 我只是进行了问题分析和文档整理 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 一、案例描述MGR在遇到表不存在的情况下,节点没有退出节点而是爆出一个警告,并且节点状态也正常,警告如下: 2019-10-17T21:16:11.564211+08:00 10 [Warning
随笔:MySQL:eq_range_index_dive_limit 索引下探接口
我的测试记录 一、概述这个参数会影响到执行计划在评估的时候到底使用统计数据还是进行实际的所以你访问,那么很显然如下: 使用统计数据生成执行计划的效率更高。使用索引实际访问,及索引下探会代价更高但是更加准确。 具体的参数含义见官方文档:Equality Range Optimization of Many-Valued Comparisons 0 :始终使用索引下探的方式。1
MySQL:产生大量小relay log的故障一例
能力有限有误请谅解,源码版本5.7.22 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 一、案例来源和现象这个案例是朋友@peaceful遇到的线上问题,最终线索也是他自己找到的。现象如下: 1、出现了大量很小的relay log如下,堆积量大约2600个:... -rw-r----- 1 mysql dba 12827 Oct 11 12:28 mysq
Oracle:On ROWNUM and Limiting Results
转载记录一篇关于ROWNUM伪列的文章来自Tom Kyte大师 https://blogs.oracle.com/oraclemagazine/on-rownum-and-limiting-results This issue’s Ask Tom column is a little different from the typical column. I receive many quest
MySQL:关于Bug #81119
修复版本5.7.18,下面是commit,记录一下后面详细学习。 故障 下面是commit $ git show a43f7d5a6130550619afad3fb513c98e00dc505e commit a43f7d5a6130550619afad3fb513c98e00dc505e Author: Daogang Qu <bill.qu@oracle.com>
MySQL:一个innodb_thread_concurrency设置不当引发的故障
一、问题来源欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 这是一个朋友问我的典型案例。整个故障现象表现为,MySQL数据库频繁的出现大量的请求不能响应。下面是一些他提供的证据: 1、show processlist从状态信息来看出现如下情况: insert操作:状态为update update/delete操作:状态为updatingselect操作:状态为sendi
随笔:MySQL:双主情况下跳过Event的方式
简单记录如下: 双主情况下跳过相同server id Event的方式: IO线程 通过对比SERVER_ID 进行跳过操作 { mi->set_master_log_pos(mi->get_master_log_pos() + inc_pos); memcpy(rli->ign_master_log_name_end, mi->
[c++11]我理解的右值引用、移动语义和完美转发
转载 自 https://www.jianshu.com/p/d19fc8447eaa c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。有点难理解,于是花时间整理一下自己的理解。 左值、右值C++中所有的值都必然属于左值、右值二者之一。左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。很难得到左
MySQL:FTWRL一个奇怪的堵塞现象和堵塞总结
本案例由徐晨亮提供,并且一起探讨。 本文中FTWRL = “flush table with read lock” 关于常用操作加MDL LOCK锁类型参考文章:http://blog.itpub.net/7728585/viewspace-2143093/ 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 一、两个不同的现象首先建立一张有几条数据的表就可以了,我这