在一张表上的全部列上加了一个多列索引,里面数据量大概800W,索引文件为什么比数据文件大。。:
12K BHV_U.frm
420M BHV_U.MYD
581M BHV_U.MYI
我觉得数据文件肯定比索引文件大的吧,为什么会出现上面这个情况。
12K BHV_U.frm
420M BHV_U.MYD
581M BHV_U.MYI
我觉得数据文件肯定比索引文件大的吧,为什么会出现上面这个情况。
SHOW INDEX FROM tbl_name
应该是索引列过多
索引再多,文件应该也没有数据文件大吧。。
index (c1)
index (c2)
index (c1,c2)则很显然这个MYI文件一定会大于MYD。
曾经搞了一个系统,当初也没想到他们数据量会这么大,业务变化也快。为了赶工期,不停地往里面加字段,同时加了索引,结果索引是数据的3倍。拆了表重建成几张表,就好多了。另外,你说“就1个索引,覆盖了所有的字段”
正因为如此,必然是索引大。数据文件,基本上可以想象成每条数据一行(逻辑上的行,不是物理),每行里面就是N个字段。每行有个行号(比如,数据偏移量),这个行号本身并不在数据文件中存储。
而索引,除了要放N个字段作为key以外,还要存这个行号作为节点的value,存在索引文件中。