【发布时间】:2018-12-28 11:09:33
【问题描述】:
我有一个存储用户电视节目库的表,我想改进它
该表包含以下列:
USER_IDSHOW_IDSTATUS-
PROGRESS|观看的最后一集 IS_FAVORITERATING
我有以下索引:
-
USER_ID & SHOW_ID|初级 -
USER_ID|需要外键 -
SHOW_ID|需要外键 USER_ID & STATUSUSER_ID & IS_FAVORITESHOW_ID & STATUSSHOW_ID & IS_FAVORITE
我有大约 20M 行,数据权重大约 750MB,索引权重大约 2GB,总共大约 2.75GB 我认为索引太多了,但也许它们确实需要提高性能,我应该这样保留还是应该删除最后 4 个索引,为什么?
【问题讨论】:
-
这取决于您的查询,您最常运行的查询是什么,如果这些查询正在使用这些索引,则保持原样,否则删除
-
索引取决于您正在执行的查询。你知道你对这张表最常见的查询吗?
-
这篇值得一读:use-the-index-luke.com
-
这两个FK(单列)键是多余的,可以去掉。 FK 将根据需要获取其他索引。
标签: mysql sql indexing group-by query-optimization