INSERT/UPDATE/SELECT 的哪个比率建议使用索引?

Which ratio of INSERT/UPDATE/SELECT recommends using an index?

我知道索引有助于 select 查询,但也会阻碍插入和更新查询作为引擎在原始 table 和索引中执行...

因此,如果您主要执行 insert/updates 语句,则可能更建议不要创建索引,反之亦然。尽管这取决于您需要 运行 更快的查询。

在我的例子中,我需要先 select 然后再插入,同样重要。所以这是一个 50/50 的场景。那我应该创建索引吗?

如果你有 selects,更新那么索引肯定会,但如果你有更多的插入,那么索引创建和更新是一种开销,这会降低你的性能。一般比率可以是 80-90%(select + 更新)和 10% 或更少的插入,这样权衡应该看起来是有益的。

如果您要批量加载数据(频率较低),那么导入实用程序可以为您提供帮助,在此期间,您可以安全地删除索引,并在插入数据后再次重建索引。