日期:2014-05-16  浏览次数:21088 次

关于聚集表与非聚集表索引叶子节点的问题
create table t1(x int auto_increment primary key, y int, key inb using btree(y)) engine=innodb;
create table t2(x int auto_increment primary key, y int, key msm using btree(y)) engine=myisam;


describe select x from t[1或2] where y=12
t1得出的结果是using where, using index
t2是using where
不知道这样测试是不是有问题


t1, 我觉得之索引用到了索引覆盖, 是因为y索引列的节点存储了主索引的列值


t2, mysiam不支持聚集索引, 所以y索引列的节点存储的是一个指针, 这个指针是行的物理地址吗? 还是一个其他东西呢???


刚接触这个不久, 理解有误之处希望大家不要见笑



------解决方案--------------------
引用t2, mysiam不支持聚集索引, 所以y索引列的节点存储的是一个指针, 这个指针是行的物理地址吗? 还是一个其他东西呢???

------解决方案--------------------
t2, mysiam不支持聚集索引, 所以y索引列的节点存储的是一个指针, 这个指针是行的物理地址吗? 还是一个其他东西呢???


----------------------------------------------------------------
对于myisam 的索引和innodb ,有很大不同,哪怕是innodb 的secondary index,他们的叶子节点存的东西是不一样的,对于myisam,叶子节点存的是索引键信息和数据的物理行号。