有个疑问,一直不是很清楚,想问一下您,InnoDB表t1: (id,a,b,c,d,e,f,g,h)
primary key为id,为聚簇索引
secondary key 有两个,一个为key_ab(a,b) 实际上(a,b,id),另一个为key_c(c)实际上是(c,id)
按照一个索引有两个segment的说法,是不是应该有6个segment,结构如下:
key_ab的segment:nonleaf nodes segment中放置是(a,b) ,leaf nodes segment放置是 (id)
key_c的segment: nonleaf nodes segment 中放置的是(c),leaf nodes segment放置的是(id)
聚簇索引也就是primary key组织的数据:nonleaf nodes segment中放置的是(id), leaf nodes segment放置的是(id,a,b,c,d,e,f,g,h)
如果我select a,b from t1,覆盖索引扫描, 那么是不是从InnoDB表空间中,查到key_ab的两个segment中的nonleaf nodes segment中直接查询数据?
如果select * from t1 的话是不是直接从聚簇索引中的leaf nodes segment取数据呢?