gpt4 book ai didi

mysql - 检查mysql是否有索引null

转载 作者:行者123 更新时间:2023-11-29 07:23:11 25 4
gpt4 key购买 nike

基于 this question我相信 mysql 确实索引空值。我正在尝试优化一个 sql server,我想知道服务器是否有索引空值;有没有办法检查 NULL 值的索引?

最佳答案

无视,无视,无视!

对于 NULL,索引是 0 字节、1 字节、2 字节还是几个字节——这在总体方案中无关紧要。

BTree(您正在谈论的索引是 BTree)向下钻取的级别非常少(10 亿 行可能有 5 个级别)。即使索引中的每个“行”的大小都翻了一番,BTree 可能仍然只有 5 层深。 “5”是一次“点查询”的费用。这与条目中的绒毛无关。

手册页可能是 MyISAM 是唯一引擎时的遗留问题。 InnoDB 的出现不一定会更新像这样的详细信息,更不用说它的 4 个 ROW_FORMATs

也不要相信EXPLAIN。当它说 Key_len 时,它只提供条目大小的线索。

INT NOT NULL -- 4 -- meaning 4 bytes
INT NULL -- 5 -- implying an extra byte for NULL
VARCHAR(10) CHARACTER SET utf8 -- 32 -- 2 for length (might be only 1) + 3*10

但是 varchars 不占用 32 个字节;它们的长度可变

关于mysql - 检查mysql是否有索引null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55187658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com