CREATETABLE`tuser`(`id`int(11)NOTNULL,`id_card`varchar(32)DEFAULTNULL,`name`varchar(32)DEFAULTNULL,`age`int(11)DEFAULTNULL,`ismale`tinyint(1)DEFAULTNULL,PRIMARYKEY(`id`),KEY`id_card`(`id_card`),KEY`name_age`(`name`,`age`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;EXPLAINselect*from tuser where name like'李%'and age=11;
传统查询过程
存储引擎根据 merchant_id > 3 查询出所有符合的数据列,根据数据列对应主键 ID 回表查询,并返回 Service 层。
Service 层根据 order_id = “2” 筛选符合条件的数据返回客户端。
ICP 查询过程
存储引擎根据 merchant_id > 3 查询出所有符合的数据列,由于使用的是联合索引,数据列中包含 order_id 的值,存储引擎再根据 order_id = “2” 过滤出符合条件的数据列,根据数据列对应主键 ID 回表查询,并返回 Service 层。