有一个问题,我们都知道,mysql是主键聚集索引的,每个非叶子页保存着表行的页号,然后根据页号在磁盘上进行读取,获取表行数据.问题来了:1.但是如果mysql先走非聚集索引,获取到主键值以后,在主键的聚集索引上查找到主键在磁盘上的物理位置,进行读取的时候,因为获取到的主键值不是顺序的,所以导致全部的随机I/O,我觉得很奇怪,为什么mysql不先对获取到的页号进行排序,这样不就可以较为顺序的读取了吗,而且内存中排序速度很快,这样可以降低大量随机I/O时间啊.为什么不这么做而是直接进行随机读取呢?2.我将非叶子页保存的指向表行的页号理解为该表行在磁盘上保存的物理位置,磁盘根据这个物理位置进行磁头和磁臂的移动以读取该表行数据,这个理解是没问题的吧?请教各位大神啦~~谢谢.
慕姐4208626
相关分类