mysql 需要查询INDEX?

mysql query INDEX is needed?

我的网站有一个关注系统,它是一个在线游戏。 所以,在这个游戏中,一个玩家可以跟随另一个玩家结盟。

CREATE TABLE IF NOT EXISTS `follow` (
  `player` INT NOT NULL REFERENCES cadastro (`id`),
  `follow` INT NOT NULL REFERENCES cadastro (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

player 是谁在关注。 我的问题是,如果将来这个 table 包含大量用户,我是否应该使用索引?我该如何使用它?

我在游戏中所做的是:

select `follow` from follow where player = $

所以索引应该是player?任何优化帮助?

如果 table 变大,

索引 player 肯定会加快您的查询速度。如果这是您打算在 table 上 运行 的唯一查询,我将索引 player, follow,因此可以通过 player 搜索该查询,然后是 player 的值follow 从同一索引检索,而无需访问 table。

当表示这样的多对多关系时,最佳做法通常是让主键在 playerfollow 上都成为多键。

由于您可能需要通过这两种方式进行多对多映射,因此您需要:

PRIMARY KEY(player, follow),
INDEX      (follow, player)