我正在设计一个 MySQL 数据库...
我有许多使用 UserID 作为主键的表。所有这些表将为每个用户保留 1 行,因此将以相同的速度增长。看到他们将通过主键(UserID)访问,我认为不需要索引这个键,因为每个键都是唯一的。
我还将有许多表,它们将递增数字作为主键,而 UserID 将是第二列。对于这些表,第二列中将有多个 UserID 实例。(每个这个 UserID 都有很多朋友,每个都列在不同的行上)。我希望这些表会变得很长,但不会很宽,因此相对于 GB 来说不会很大。
问题:如果我在上面第 2 部分(UserID/第二列)中的表上添加索引,并且如果我的查询使用 UserID 进行联接(所有联接都关闭 UserID),这是否意味着联接将访问更大的表(上面的第 2 部分) 通过索引的 UserID,因此访问这些较大表的速度将类似于第 1 部分中的较小表?
使用 UserID 作为唯一主键(较短的表)或索引列(较大的表)让所有将成为联接的一部分的表 - 这似乎是合理的设计,以确保表获得良好的响应时间相当大 - 曾经达到 1 亿行吗?(不包括硬件等其他要求)。
想法?谢谢