1、MySQL的基本存储结构是页(记录都存在页里面),每个数据页可以组成一个双向链表。而每个数据页中的记录又可以组成一个单向链表。
2、每个数据页都会为存储在里面的记录生成一个页目录,在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可快速找到指定的记录。
3、以其他列(非主键)为搜索条件,只能从最小记录开始依次遍历单链表中的每条记录
Select * from user where username =”xiangxiang”,比如这种没经过优化的SQL语句,默认做法:
第一, 定位到记录所在的页,需要遍历双向链表找到所在的页。
第二, 从所在的页中查找相应的记录。由于不是根据主键查询,只能遍历所在页的单链表。