前言:
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 '正在使用的倉負載',