有什么做设计接任务的网站,中山微网站建设报价,网站建设有什么出路,潍坊电商网站建设联合索引提高查询效率的原理
MySQL会为InnoDB的每个表建立聚簇索引#xff0c;如果表有索引会建立二级索引。聚簇索引以主键建立索引#xff0c;如果没有主键以表中的唯一键建立#xff0c;唯一键也没会以隐式的创建一个自增的列来建立。聚簇索引和二级索引都是一个b树如果表有索引会建立二级索引。聚簇索引以主键建立索引如果没有主键以表中的唯一键建立唯一键也没会以隐式的创建一个自增的列来建立。聚簇索引和二级索引都是一个b树b树的特点是数据按一定顺序存在叶子节点且每页数据相连。一般情况下使用索引查询时先查询二级索引的b树查到数据并拿数据中保存的主键回查聚簇索引查到所有数据。下面我们举个例子来重现这个过程。
以下面表举例,假设表中已经存了部分数据
create table user_info(id bigint(20) NOT NULL PRIMARY KEY,name varchar(11),age int(11),phone varchar(20),KEY key_name_age (name,age)
)ENGINEInnoDB DEFAULT CHARSETutf8;假如我们想要查找名字为zhaoliu年龄为30的人的信息。即name‘zhaoliu’,age30
1先查二级索引先用二分法查找发现在wangwu名字的右边 2读取右边的这页的数据到内存二分法查到数据2个name为zhaoliu人。 3继续二分法比较age查到数据id31 4id31回查聚簇索引先用二分法查找发现在31右边 5读取31左边这页数据到内存二分法查到数据并返回数据 如果你仅仅查找idname和age数据那么这样就用到了覆盖索引这样就不用回查聚簇索引在第3步直接返回数据即可。