- 博客(17)
- 收藏
- 关注
原创 第27问:information_schema.columns 表上做查询慢,为什么?
问题在 26 问中,我们看到了如下 SQL 在 MySQL 5.7 中跑得很慢:我们还分析了执行计划改写后的 SQL,通过猜测,增加了 hint 来解决问题:这一期,我们通过工具来分析一下:MySQL 为什么会使用一个低效的执行计划,以致于我们不得已用 hint 来调优 SQL?实验我们接着使用 26 问中的环境,使用 optimizer trace 工具,观察 MySQL 对 SQL 的优化处理过程。我们先调大 optimizer trace 的内存容量(否则 trace 的输出会被截.
2020-11-27 16:54:29 449 1
原创 技术分享 | 优化案例
作者:杨奇龙网名“北在南方”,目前任职于杭州有赞科技 DBA,主要负责数据库架构设计和运维平台开发工作,擅长数据库性能调优、故障诊断。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。前言在数据库表结构变更发布之前,我们会和开发沟通索引设计是否合理,发现部分开发同学对于索引设计还是有一些知识盲区。本文把常见的案例记录下来,做个分析,抛砖引玉。区分度和过滤性先看一段和开发同学日常 sql review 的对话:上面的对话其实在工作中比较常见.
2020-11-26 16:37:09 425
原创 故障分析 | 正确使用 auth_socket 验证插件
作者:姚远专注于 Oracle、MySQL 数据库多年,Oracle 10G 和 12C OCM,MySQL 5.6,5.7,8.0 OCP。现在鼎甲科技任技术顾问,为同事和客户提供数据库培训和技术支持服务。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。现象一线的工程师反映了一个奇怪的现象,刚刚从 MySQL 官网上下载了一个 MySQL 5.7.31。安装完成后,发现使用任何密码都能登陆 MySQL,修改密码也不管用,重新启动 MySQL .
2020-11-23 16:42:12 972
原创 第26问:information_schema.columns 表上做查询慢,怎么办?
问题我们有一个 SQL,用于找到没有主键 / 唯一键的表,但是在 MySQL 5.7 上运行特别慢,怎么办?实验我们搭建一个 MySQL 5.7 的环境,此处省略搭建步骤。写个简单的脚本,制造一批带主键和不带主键的表:执行一下脚本:现在执行以下 SQL 看看效果:…执行了 16.80s,感觉是非常慢了。现在用一下 DBA 三板斧,看看执行计划:感觉有点惨,由于 information_schema.columns 是元数据表,没有必要的统计信息。那我们来 show war.
2020-11-20 16:33:41 295
原创 技术分享 | MySQL binlog 压缩功能对性能的影响
作者:蒋乐兴MySQL DBA,擅长 python 和 SQL,目前维护着 github 的两个开源项目:mysqltools 、dbmc 以及独立博客:https://www.sqlpy.com。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。概要之前有做过一个 binlog 压缩能节约多少空间的测试,效果上看还是比较理想的,可以节约一半以上的空间。但是这个又引出了一个新的问题,那就是这个功能对性能有多大影响呢?于是我又在测试环境试了一下,测.
2020-11-19 16:33:20 337
原创 技术译文 | MySQL 8 持久化系统变量
作者:Arunjith Aravindan翻译:管长龙本文来源:https://www.percona.com/blog/2020/10/27/using-mysql-8-persisted-system-variables/MySQL 8 之前,使用的动态变量不是永久性的,并且在重启后会重置。可在运行时使用 SET 语句更改这些变量,以影响当前实例的操作,但是我们必须手动更新 my.cnf 配置文件以使其持久化。在许多情况下,从服务端更新 my.cnf 并不是一个方便的选择,并且使变量仅被更新.
2020-11-18 16:41:16 310 1
原创 技术译文 | MySQL 8 中检查约束的使用
作者:Walter Garcia翻译:管长龙本文来源:https://www.percona.com/blog/2020/10/02/how-to-use-check-constraint-in-mysql-8/大家好,在这篇小文章中,我们将介绍 MySQL 8 的一项新功能。什么是“检查约束”?这是一项新功能,用于指定在插入或更新到一行之前检查值的条件。如果表的任何行的搜索条件的结果为 FALSE,则约束可能返回错误(但如果结果为 UNKNOWN 或 TRUE,则约束不会返回错误)。此功能.
2020-11-17 16:33:44 294
原创 技术分享 | 客户端连接 MySQL 失败故障排除
作者:姚远专注于 Oracle、MySQL 数据库多年,Oracle 10G 和 12C OCM,MySQL 5.6,5.7,8.0 OCP。现在鼎甲科技任技术顾问,为同事和客户提供数据库培训和技术支持服务。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。在 MySQL 的日常运维中,客户端连接 MySQL 失败的现象也很常见。对于这种情况,分下面的三类进行排查。一、mysqld 进程没有正常运行遇到这种情况首先到服务器上看看 mysqld .
2020-11-16 16:31:09 190
原创 故障分析 | 崩溃恢复巨慢原因分析
作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。一、现象有个 MySQL 5.7开发库异常挂掉后,奔溃恢复一直处于如下位置,且持续了 2 小时左右才起来。非常疑惑这段时间 MySQL 到底做了什么事情?居然需要这么长时间。虽说这里虚拟机的 IOPS 并不是很高,但也绝对不需要这么久吧?而且从日志输出来看,这块应该也不是在做真正的数据恢复,那么也可以排除是大事务回滚导致的耗时长,那么原因到底是啥呢?值得注意的是,这台开发库上面有将近.
2020-11-13 14:40:07 242
原创 故障分析 | MySQL5.7 使用 mysqldump 重要避坑事项
作者:王向爱可生 DBA 团队成员,负责公司 DMP 产品的运维和客户 MySQL 问题的处理。擅长数据库故障处理。对数据库技术和 python 有着浓厚的兴趣。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。背景笔者在一次处理客户 MySQL 问题时遇到客户的 MySQL 的 sys 库不能用了并抛出一下错误:mysql> SELECT * FROM sys.processlist; ERROR 1356 (HY000): View.
2020-11-12 16:41:40 763
原创 第16期:索引设计(MySQL 的索引结构)
上一章讲了数据库基本上都用 B+ 树来存储索引的原因:适合磁盘存储,能够充分利用多叉平衡树的特性,磁盘预读,并且很好的支持等值,范围,顺序扫描等。这篇主要介绍 MySQL 两种常用引擎,MyISAM 和 InnoDB 的索引组织方式,了解这些存储方式,对数据库优化很有帮助。MySQL 的索引按照存储方式分为两类:**聚集索引:**也称 Clustered Index。是指关系表记录的物理顺序与索引的逻辑顺序相同。由于一张表只能按照一种物理顺序存放,一张表最多也只能存在一个聚集索引。与非聚集索引相比,聚.
2020-11-11 16:32:33 301
原创 新特性解读 | MySQL 8.0.22 任意格式数据导入
作者:杨涛涛资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。MySQL 8.0.22 在今年的 10 月 19 日发布,给我们带来很多非常实用的特性。特别是对 MySQL S.
2020-11-10 16:50:05 292
原创 技术分享 | MySQL 启动失败的常见原因
作者:姚远专注于 Oracle、MySQL 数据库多年,Oracle 10G 和 12C OCM,MySQL 5.6,5.7,8.0 OCP。现在鼎甲科技任技术顾问,为同事和客户提供数据库培训和技术支持服务。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。MySQL 启动失败的最常见的原因有两类,分别是无法访问系统资源和参数设置错误造成的,下面分别分析如下。一、无法访问系统资源MySQL 不能访问启动需要的资源是造成而 MySQL 无法启动的.
2020-11-09 17:21:16 599
原创 第25问:MySQL 崩溃了,打印了一些堆栈信息,怎么读?
问题在 09 问中,我们开启了 coredump 功能,在 MySQL 崩溃时获得了有用的 coredump 信息。那如果没开启 coredump,仅有 error log 中的堆栈信息,我们如何分析有效的信息?实验我们沿用 09 问中的 MySQL 崩溃的场景,此处忽略复现崩溃的步骤,大家参看 09 问查看 error log:我们拿到了崩溃位置 0xee36f1,如何找到与之相对的代码位置呢?找台测试机,获取对应版本的安装包:解压:然后用 GDB 打开 mysqld:在 0xe.
2020-11-06 16:33:41 379
原创 技术分享 | 基于 GTID 的多源复制
作者:马文斌MySQL OCP 认证,PostgresSQL PGCA 认证,擅长 MySQL、PostgreSQL、dble 等开源数据库相关产品的备份恢复、读写分离、SQL 调优、监控运维、高可用架构设计等。目前任职于月亮小屋(中国)有限公司。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。一、背景有 4 个地区工厂的数据,需要同步到 idc。之前有个方案是用阿里的 otter 管理平台去同步到 idc 机房。运行一段时间过后,发现 ott.
2020-11-03 15:04:15 215
原创 新特性解读 | MySQL 8.0.22 新特性 Async Replication Auto failover
作者:洪斌爱可生南区负责人兼技术服务总监,MySQL ACE,擅长数据库架构规划、故障诊断、性能优化分析,实践经验丰富,帮助各行业客户解决 MySQL 技术问题,为金融、运营商、互联网等行业客户提供 MySQL 整体解决方案。本文来源:转载自公众号-玩转MySQL*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。MGR 具备了 RPO=0 的高可用容灾能力,但并不适合跨 WAN 场景下使用,像有两地三中心容灾需求的场景,单纯靠 MGR 是无法满足的,必须要拉上异步.
2020-11-02 15:54:53 543 1
原创 分布式 | DBLE 分片算法之 hash 分片
作者:赵红杰DBLE 项目测试负责人,主导分布式中间件的测试,在测试中不断发现产品和自身的 bug。迭代验证,乐在其中。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。背景社区有大佬分享过跳增 hash 的文章,但是当时并不理解跳增 hash 使用的场景。刚接触分布式数据库中间件 dble 的时候,最迷惑的概念之一是 hash 分片算法。看到哈希,第一印象是散列表,感觉是存储相关的。hash 一个重要的特征是需要不同输入产生不同输出,但是在分片.
2020-11-02 13:53:47 630
ActionDB 产品技术白皮书
2023-10-08
SQL 审核工具:SQLE v2.2308 用户手册
2023-10-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人