怀陶宁 发表于 2025-6-10 23:53:45

【GreatSQL优化器-08】statistics和index dives

【GreatSQL优化器-08】statistics和index dives

一、statistics和index_dives介绍

GreatSQL的优化器对于查询条件带有范围的情况,需要根据 mm tree 来估计该范围内大概有多少行,然后以此来计算cost。对于等号条件,给出了两种方法来估计对应行数--Statistics和index dives,前者不精确后者精确,可以通过系统变量eq_range_index_dive_limit设置阈值来决定用哪种方法来估计等号条件的行数。对于一条查询 SQL 如果等号条件太多的时候执行index dives会占用较多资源,这时候设置一个合理的阈值改为统计值估计可以有效避免占用过多资源,提升执行效率。
名称定义说明Statistics用统计值来估计等号条件的行数,不精确意味着SKIP_RECORDS_IN_RANGE模式,计算方式: rows = table->key_info.records_per_key()index dives精确计算等号条件的行数意味着RECORDS_IN_RANGE,计算方式: rows = this->records_in_range()下面用一个简单的例子来说明index dives是什么:
greatsql> CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 INT,date1 DATETIME);greatsql> INSERT INTO t1 VALUES (1,10,'2021-03-25 16:44:00.123456'),(2,1,'2022-03-26 16:44:00.123456'),(3,4,'2023-03-27 16:44:00.123456'),(5,5,'2024-03-25 16:44:00.123456'),(7,null,'2020-03-25 16:44:00.123456'),(8,10,'2020-10-25 16:44:00.123456'),(11,16,'2023-03-25 16:44:00.123456');greatsql> CREATE TABLE t2 (cc1 INT PRIMARY KEY, cc2 INT);greatsql> INSERT INTO t2 VALUES (1,3),(2,1),(3,2),(4,3),(5,15);greatsql> CREATE TABLE t3 (ccc1 INT, ccc2 varchar(100));greatsql> INSERT INTO t3 VALUES (1,'aa1'),(2,'bb1'),(3,'cc1'),(4,'dd1'),(null,'ee');greatsql> CREATE INDEX idx1 ON t1(c2);greatsql> CREATE INDEX idx2 ON t1(c2,date1);greatsql> CREATE INDEX idx2_1 ON t2(cc2);greatsql> CREATE INDEX idx3_1 ON t3(ccc1);greatsql> SELECT * FROM t1 WHERE (c1=4 AND c2

舒菀菀 发表于 2025-12-11 18:54:31

谢谢分享,辛苦了

倘伟 发表于 2025-12-18 14:32:42

喜欢鼓捣这些软件,现在用得少,谢谢分享!

锟及 发表于 2025-12-25 21:59:40

前排留名,哈哈哈

裒噎 发表于 2025-12-26 10:30:03

前排留名,哈哈哈

岑韬哎 发表于 2026-1-3 23:40:32

很好很强大我过来先占个楼 待编辑

支智敏 发表于 2026-1-24 05:27:21

懂技术并乐意极积无私分享的人越来越少。珍惜

粉押淫 发表于 2026-1-27 07:08:34

这个好,看起来很实用

辉伫 发表于 2026-1-28 19:05:52

收藏一下   不知道什么时候能用到

时思美 发表于 2026-2-3 03:29:43

懂技术并乐意极积无私分享的人越来越少。珍惜

卒挪 发表于 2026-2-3 08:44:37

很好很强大我过来先占个楼 待编辑

搁胱 发表于 2026-2-4 06:40:07

懂技术并乐意极积无私分享的人越来越少。珍惜

任修 发表于 2026-2-7 04:14:41

感谢分享

劳暄美 发表于 2026-2-8 10:39:04

谢谢分享,试用一下

师佳思 发表于 2026-2-9 09:05:08

谢谢楼主提供!

宗和玉 发表于 2026-2-10 11:58:14

yyds。多谢分享

蓬庄静 发表于 2026-2-10 14:14:12

新版吗?好像是停更了吧。

伏滢 发表于 2026-2-11 12:16:48

谢谢分享,辛苦了

杼氖 发表于 2026-2-11 18:09:38

很好很强大我过来先占个楼 待编辑

迁岂罚 发表于 2026-2-11 21:02:52

收藏一下   不知道什么时候能用到
页: [1] 2
查看完整版本: 【GreatSQL优化器-08】statistics和index dives