假如想要知道更多关于直方图统计的细节,可以行使trace:
- mysql> SET OPTIMIZER_TRACE = "enabled=on";
- Query OK, 0 rows affected (0.00 sec)
- mysql> SET OPTIMIZER_TRACE_MAX_MEM_SIZE = 1000000;
- Query OK, 0 rows affected (0.00 sec)
- mysql> EXPLAIN SELECT * FROM customer WHERE c_birth_day <= 20 AND c_birth_year = 1967;
- mysql> SELECT JSON_EXTRACT(TRACE, "$**.filtering_effect") FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
- +----------------------------------------------------------------------------------------+
- | JSON_EXTRACT(TRACE, "$**.filtering_effect") |
- +----------------------------------------------------------------------------------------+
- | [[{"condition": "(`customer`.`c_birth_day` <= 20)", "histogram_selectivity": 0.6376}]] |
- +----------------------------------------------------------------------------------------+
- 1 row in set (0.00 sec)
这里用了JSON_EXTRACT从trace里取出相干的部门。对付每个前提,直方图被行使的话,就会看到估算过的字段的选择性。在这个例子里,通过直方图,对“c_birth_day <= 20”前提,估算出63.76%的数据满意前提。究竟上,与现实的数据漫衍环境根基同等:
- mysql> SELECT
- -> (SELECT count(*) FROM customer WHERE c_birth_day <= 20)
- -> /
- -> (SELECT COUNT(*) FROM customer) AS ratio;
- +--------+
- | ratio |
- +--------+
- | 0.6376 |
- +--------+
- 1 row in set (0.03 sec)
【编辑保举】
- MySQL不为人知的主键与独一索引束缚
- 数据库ndf文件巨细变为0KB怎样举办数据规复?
- 带你相识MySQL数据库小能力
- 史上最全的MySQL高机能优化拭魅战总结!
- 数据库为什么会分为“行式存储”和“列式存储”呢?
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0 (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|