Sql优化之回表
前言:
MySQL的性能是大家在使用时十分关心的问题,比如在高并发访问时,并且有慢sql存在的情况下,MySQL的性能会明显下降,这会导致数据库响应时间变慢,甚至导致数据库宕机。那么为了避免Mysql性能问题,比较常用的方式创建适当的索引,提升sql语句的执行效率。而本文简单介绍一下和索引有关的回表,从实际案例出发,讲讲什么是回表,如何避免回表,如何减少回表。
实际案例:
前置仓产能动态ETA时效降级需求,提供一个数据同步接口,接送大数据同步过来的前置仓的仓负债和配负债,需要支持批量,最多可支持10个批量。
表结构如下,可以看到唯一索引是 UNIQUE KEY `uniq_shop` (`shop_id`,`shop_type`)
CREATE TABLE `shop_load_degrade_strategy` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`shop_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '门店ID',
`shop_type` int(11) NOT NULL DEFAULT '0' COMMENT '门店类型',
`current_store_load` int(10) NOT NULL DEFAULT '0' COMMENT '当前仓负载',
`active_store_load` int(10) NOT NULL DEFAULT '0' COMMENT '正在使用的仓负载',