gpt4 book ai didi

sql - 如何决定何时在表列上使用索引

转载 作者:行者123 更新时间:2023-12-03 13:21:39 26 4
gpt4 key购买 nike

什么时候应该在表上使用索引?

  • 从多少行索引有意义?
  • 如果我的表有固定行,刚刚编辑的列(不在“where”子句中),即使表只有大约 15 行,索引也有意义?编辑:在这种情况下,非索引选择/读取比索引读取更有效吗?

  • 编辑:
    现在我使用 firebird 2.5,但大部分时间我使用 SQL Server 2005/2008。

    最佳答案

    一般来说,我的索引策略是这样的(我现在只使用 SQL Server - 根据需要适应您自己的数据库系统):

  • 选一个 集群键 - 不是 GUID,也不是 VARCHAR(250)或者什么 - 一个 聚类键是狭窄的、独特的、稳定的、不断增加的——类似于 INT IDENTITY是完美的。使它成为您的聚集主键 -> 为您提供表上的第一个索引
  • 对于用作另一个表的外键的任何列 - 添加索引。它可以是单列索引 - 也可以是复合索引 - 任何最适合您的情况。重要的是外键列是 第一 该索引中的列(如果您使用复合索引) - 否则,JOIN 的好处's 或用于检查参照完整性对您的系统不可用

  • 这就是现在。

    然后:运行您的系统 - 观察和测量 - 建立基线。该应用程序是否足够快?如果是 -> 你完成了 - 回家享受你的业余时间。

    如果不是:然后开始收集数据并说明应用程序速度不够快的原因。看看例如SQL Server 中的 DMV 之类的东西会告诉您性能最差的查询,或者缺少索引 DMV。分析那些。看看你可以改进什么。添加 一次一个索引 再一次:观察,测量,与您的基线进行比较。

    如果您有改进 -> 保留该指数,此衡量标准是您的新基准。冲洗并重复,直到您(和您的用户)对应用程序的性能感到满意(然后回家享受您的休息时间)。

    SQL Server 中的过度索引可能是 更糟比没有任何索引。不要从太多的索引开始!只立 聚集 PK 和外键非聚集索引 - 这就是全部 - 然后观察、测量、优化和重复该循环。

    关于sql - 如何决定何时在表列上使用索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11984636/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com