摘要:
【GreatSQL优化器-10】find_best_ref 一、find_best_ref介绍 GreatSQL的优化器对于join的表需要根据行数和cost来确定最后哪张表先执行哪张表后执行,这里面就涉及到预估满足条件的表数据,在keyuse_array数组有值的情况下,会用find_best_r 阅读全文
摘要:
【GreatSQL优化器-09】make_join_query_block 一、make_join_query_block介绍 GreatSQL优化器对于多张表join的连接顺序在前面的章节介绍过的best_access_path函数已经执行了,接着就是把where条件进行切割然后推给合适的表。这个 阅读全文
摘要:
GreatSQL temp文件占用时长分析 GreatSQL DBA在日常工作中可能会遇到这种情况,存在一个 InnoDB 引擎下的 temp_x.ibt 文件很大,但是却无法确定这个文件是什么时间由哪个连接建立的,难以支撑后续定位问题,今天这篇文章彻底讲明白这个问题。 现象:发现一个实例下面(44 阅读全文
摘要:
【GreatSQL优化器-08】statistics和index dives 一、statistics和index_dives介绍 GreatSQL的优化器对于查询条件带有范围的情况,需要根据 mm tree 来估计该范围内大概有多少行,然后以此来计算cost。对于等号条件,给出了两种方法来估计对应 阅读全文
摘要:
使用 gt-checksum 迁移表结构到 GreatSQL 背景 本文以从 ORACLE 迁移到 GreatSQL 为例讲述如何使用 gt-checksum 迁移表结构。 关于gt-checksum gt-checksum是GreatSQL社区开源的一款静态数据库校验修复工具,支持MySQL、Or 阅读全文
摘要:
【GreatSQL优化器-07】mm tree 一、mm tree介绍 GreatSQL 的优化器主要用 mm tree 也就是 min-max tree 来确定条件的范围,然后根据不同索引的范围值来计算 cost,选取 cost 最小的索引来执行SQL。 下面用一个简单的例子来说明 mm tree 阅读全文
摘要:
DML操作报列不存在? 背景概述 客户在测试时发现执行某些DML语句时,出现了异常情况,报表不存在或者列不匹配的情况; 我在做数据迁移测试的时候也出现此问题,迁移数据时报 unknow column; 看到这种情况的时候很奇怪,查看表结构时也能看到当前执行的SQL语句涉及的表及列是存在的; 经过排查 阅读全文
摘要:
【GreatSQL优化器-06】条件过滤导致选择非最佳 一、condition_fanout_filter导致计划非最佳 GreatSQL 的优化器对于 join 的表需要根据行数和 cost 来确定最后哪张表先执行哪张表后执行,这里面就涉及到预估满足条件的表数据,condition_fanout_ 阅读全文
摘要:
【GreatSQL优化器-05】条件过滤condition_fanout_filter 一、condition_fanout_filter介绍 GreatSQL 的优化器对于 join 的表需要根据行数和 cost 来确定最后哪张表先执行哪张表后执行,这里面就涉及到预估满足条件的表数据,condit 阅读全文
摘要:
通过延时从库+binlog复制,恢复误操作数据 一、介绍环境 数据库版本 实例角色 ip地址 端口 GreatSQL 8.0.32-26 master 192.168.134.199 5725 GreatSQL 8.0.32-26 slave 192.168.134.199 5726 二、主库配置 阅读全文