Hum*_*All 4 performance index database-agnostic
标题总结了它。
我已经了解到并一直听说表中的索引可以改进 CRUD 操作。我上周末遇到的一位开发人员告诉我,他不喜欢索引,因为它们很糟糕——是的,“糟糕”并没有说明什么,但我们没有时间进一步讨论它(我们参加了一个聚会)。
无论如何,也许是因为我缺乏经验,我不知道索引会在 CRUD 操作期间引起麻烦的场景,但也许有一些。我问这个问题是想知道是否有任何...
小智 9
好吧,我认为你有一些混合的概念:
索引提高了 READ OPERATIONS(SELECT 的那些)的性能,同时增加了 INSERT/UPDATE OPERATIONS 的处理时间(所以它们不会改进所有的 CRUD 操作,正如你所听到的)。每次插入新行时,都应该更新索引,如果索引过多,则会增加插入时间,有时也会增加更新(如果更新涉及索引的内容。
索引使用空间,如果您有很多行,则使用大量空间。
系统知道哪个是最好使用的索引不是问题,我认为这不是真正的性能杀手,但是您应该寻找冗余索引,因为它们使用插入/更新的空间和时间。
为此,您应该知道您的数据库引擎如何处理索引,在 MySQL 中,如果您在名称、姓氏字段和其他名称上有索引,后者是多余的,因为它包含在第一个中(因为它出现在相同的顺序,不包括仅姓氏),作为冗余索引的示例。
此外,您应该测试您的数据库将如何解释查询以及将使用哪些索引(在 MySQL 中,您可以使用 Explain... 和您正在测试的查询)
最后,索引是数据库最重要的特性之一,索引本身不能“坏”,通常问题出现在忘记添加某些特定索引时,而不是索引过多时,但它可能会发生。
归档时间: |
|
查看次数: |
898 次 |
最近记录: |