预生产的索引列?

IMB*_*IMB 0 mysql performance optimization query-performance performance-tuning

如果我理解正确,索引一列会提高 SELECT 速度,但会降低 INSERT 速度。

假设您的应用程序是新的,并且您已经确定了适合编制索引的列(基于您查看视图的方式,例如 WHERE / JOINS)。

您是否必须在发现性能问题之前立即索引这些列?或者稍后再做这些操作而不影响 INSERT 是否有意义?

Phi*_* W. 5

您是否必须在发现性能问题之前立即索引这些列?

简短的回答 - 是的。

在您有连接的地方,您还应该有主键和外键约束,并且大多数 DBMS 会坚持每个索引都支持这些约束(即使它必须您创建一个)。

大多数数据库中的绝大多数流量是 SELECT,因此推迟创建索引直到性能成为问题只会让自己失败。你知道你会需要它们,所以不要让自己悲伤,然后把它们放进去。
(而且,无论如何,注意到“性能问题”的不是——而是您不满意的用户)。