摘要: 索引结构概述: MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。这与Oracle的索引结构相似,比较好理解。那么,常用的Innodb聚集索引结构是怎样的呢? InnoDB的数据文件本身(.ibd文件)就是索引文件。在InnoDB中,表数据文件本身就是按B+Tree组织的一个索引 阅读全文
posted @ 2019-12-25 14:53 Johnliu2008 阅读(1172) 评论(0) 推荐(0) 编辑
摘要: 涉及到内部信息的部分,已经经过脱敏。 现象: 接到数据分析师的报障,说QA环境最近10天的game_client_log日志数据查不到,需要尽快解决,以便分析周末测试的数据。 排查过程: 1、检查flume 因为8月13日运维问过我关于flume和kafka的问题,而game_client_log数 阅读全文
posted @ 2020-08-25 15:57 Johnliu2008 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 使用pstack, strace工具,结合源码分析与官方文档,最终找到根本原因 阅读全文
posted @ 2020-05-12 17:42 Johnliu2008 阅读(711) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 同事在给jiradb做mysqldump时,发现dump出来的文件只有10MB左右,而ibd文件占用磁盘空间100MB左右。 最初,我们猜测可能是delete操作导致了大量的磁盘碎片,以及二级索引占用了很多空间。 但是对比了data_length+index_length+data_fr 阅读全文
posted @ 2020-05-12 16:00 Johnliu2008 阅读(1542) 评论(0) 推荐(0) 编辑
摘要: gh-ost,是github开源的一款在线修改MySQL表结构的工具https://github.com/github/gh-ost/,它不使用pt-osc的触发器机制,而是使用解析binlog来实现将增量数据复制到新表。 最近我抽空了解了一下它的源码,结合debug日志,整理出它的过程,如下: 1 阅读全文
posted @ 2020-04-29 17:51 Johnliu2008 阅读(606) 评论(0) 推荐(0) 编辑
摘要: sysbench使用utf8mb4测试: 在进一步测试的时候,我修改了/usr/share/sysbench/oltp_common.lua脚本的如下部分,使之在建立数据库连接的时候执行"SET NAMES utf8mb4"(用途请参考https://dev.mysql.com/doc/refman 阅读全文
posted @ 2020-03-15 15:07 Johnliu2008 阅读(1729) 评论(3) 推荐(0) 编辑
摘要: 与数据库打过交道的人,大多都知道:长时间未提交的事务,会导致更多的锁冲突,而且也会导致主从复制的延时高。 针对这个问题,我曾经想过,能否通过分析slow query log来定位? 首先,我从官方文档中看到如下描述: PropertyValue Command-Line Format --long- 阅读全文
posted @ 2020-03-08 16:04 Johnliu2008 阅读(383) 评论(0) 推荐(0) 编辑
摘要: DML操作的大致流程 在解答上述疑惑之前,我们来梳理一下DML操作的大致流程: 1、语法解析、语义解析 2、生成执行计划 3、事务修改阶段 1) 激活事务,事务状态由not_active变为active 2) 查找定位数据 3) 乐观插入 4) 记录insert相关的undo记录,并将undo记录的 阅读全文
posted @ 2020-02-26 16:59 Johnliu2008 阅读(845) 评论(0) 推荐(1) 编辑
摘要: 1、故障描述 这是运行在公有云上的一套Hadoop集群,有一个公网IP将部分服务的端口映射出来供办公室访问。 数据分析师报告说:在HUE上面浏览HDFS文件,点击"download"准备下载时,会被重定向到 http://10.0.34.11:4032/webhdfs/v1/xk/logs/prd/ 阅读全文
posted @ 2020-01-15 14:58 Johnliu2008 阅读(1856) 评论(0) 推荐(0) 编辑
摘要: 1、问题描述 这是一套运行在腾讯云上的MongoDB 3.6版本集群,共5个分片,每片规格是6核16GB。 在压测的过程中,发现第3个分片的CPU使用率长时间高达96%,其它4个分片的CPU使用率都没有超过10%。 2、思考及分析 首先,我查看慢日志,发现大量与postbox相关的query,半个小 阅读全文
posted @ 2020-01-14 18:13 Johnliu2008 阅读(1556) 评论(0) 推荐(0) 编辑
摘要: 系统上线时,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题。 这里我考虑2个问题: A、哪些数据需要预热? B、如何预热? 关于问题A,根据不同的业务系统有不同的方法。 可以将已知的热门数据加载到Redis,这种方法适合于基本不变化的数据; 使用r 阅读全文
posted @ 2019-12-26 15:26 Johnliu2008 阅读(4674) 评论(0) 推荐(0) 编辑