什么Mysql的底层索引要用BTree那就要先说二叉树: 二叉树以第一个插入的数据作为根节点,假设特定情况他就变成了一个单项链表查询效率极慢。其次就是平衡二叉树平衡二叉树在数据量大的情况下树会很高那么我们的检索效率还是不高。然后是B TreeB tree的树高不会很高B tree 是在 b tree的前提下给优化了一下把数据也放在了叶子节点中。BTree相对于B-Tree有几点不同1.非叶子节点只存储键值信息。2.所有叶子节点之间都有一个链指针。所有的叶子节点形成了一个闭环3.数据记录都存放在叶子节点中分组链接我们在查询的时候按照某个字段分组,那么我们查询的字段只能是我们分组字段或者是聚合函数,这时我们可以用分组连接函数把其他的字段全部连接起来。聚餐索引主键索引与非聚簇索引非主键索引的区别批量新增 冲突时 更新INSERTINTOinto_shop_device_info(tenant_id,device_no,device_name,is_delete,last_heartbeat_time,xm_device_id,status,create_stime,update_stime)VALUESforeach collectiondeviceInfoListitemitemseparator,(#{item.tenantId},#{item.deviceNo},#{item.deviceName},#{item.isDelete},#{item.lastHeartbeatTime},#{item.xmDeviceId},#{item.status},NOW(),NOW())/foreachon duplicate key update tenant_idVALUES(tenant_id),device_noVALUES(device_no),device_nameVALUES(device_name),is_deleteVALUES(is_delete),last_heartbeat_timeVALUES(last_heartbeat_time),xm_device_idVALUES(xm_device_id),statusVALUES(status),update_stimeNOW()b树跟b树的区别什么时候考虑分表mysql-sql的执行过程