保山网站建设报价,章丘做网站哪家强,网站建设 数据库连接,电商 网站开发 哪个好Mysql可以分为Server层和存储引擎层 所以#xff0c;最终进行I/O的是存储引擎对文件系统进行I/O操作
索引下推#xff08;Index Condition Pushdown#xff0c;简称 ICP#xff09;
对应InnoDB#xff0c;索引下推适用于非聚簇索引#xff08;二级索引#xff09;。
…Mysql可以分为Server层和存储引擎层 所以最终进行I/O的是存储引擎对文件系统进行I/O操作
索引下推Index Condition Pushdown简称 ICP
对应InnoDB索引下推适用于非聚簇索引二级索引。
当禁用ICP时如果使用了索引a,b进行查询Server会先使用a通过存储引擎去查索引B树通过索引拿到一个主键这时候Server会使用这一个主键去回表再去查数据所以每次都要回表I/O频繁大大降低了性能。然后Server层根据查回来的数据再使用索引b进行一次过滤最终返回数据。
当启用ICP时如果使用了索引a,b进行查询Server会使用a和b通过存储引擎去查B树查到a的子节点同时在a的子节点查符合b的主键然后直接拿到同时符合条件a和b的主键然后Server层进行一次回表查询就可以直接返回数据。 疑问索引下推是适用于二级索引那未开启ICP,且联合索引(a,b,c)的情况联合索引同时使用a,b去查的话是使用a查回来的所有主键去回表然后Server过滤 还是用同时满足a和b的主键去回表查数据呢