Informix 中的组索引

2024-06-19

我有一张桌子叫hitlist,有 3 列:

int id
long hitlisted_date
long deleted_date

我将根据这些列查询该表:

histlisted_date (frequent)
hitlisted_date && deleted_date (frequent)
deleted_date (not frequent)

在这种情况下,我应该使用什么样的索引呢?

  1. 单独索引hitlisted_date & deleted_date
  2. 集团索引hitlisted_date & deleted_date

UPDATE

该表将只有 1000 - 5000 行。
这些是将要使用的查询模式。

1) hitlisted_date 之间
2) 命中列表日期 3)deleted_date = -1 且 hitlisted_date 4) 删除日期 > 0

对于上述模式,这些索引就足够了吗?

  1. 在命中列表上创建索引 i1_hitlist(hitlisted_date);
  2. 在命中列表上创建索引 i2_hitlist(deleted_date, hitlisted_date);

自从hitlisted_date并且该组合将被频繁使用,您希望在两列上使用复合索引hitlisted_date first:

CREATE INDEX i1_hitlist ON hitlist(hitlisted_date, deleted_date);

该索引可以(并且将会)用于具有合适条件的查询hitlisted_date单独或两个日期。

您可能会发现有第二个索引是有益的deleted_date:

CREATE INDEX i2_hitlist ON hitlist(deleted_date);

这可用于仅搜索deleted_date。如果您有时对单个删除日期和一系列命中列表日期进行搜索,那么您可能会发现最好使用与以下相反的复合索引i1_hitlist:

CREATE INDEX i2_hitlist ON hitlist(deleted_date, hitlisted_date);

它不太可能有帮助,但唯一确定的方法就是尝试一下看看。这取决于您的查询模式以及查询使用的实际条件。

单纯的指数并没有真正的优点hitlisted_date;它只会妨碍优化器(因为它必须查看两个索引并决定哪个更好,并且因为插入、更新和删除行时还有更多工作要做)。命中列表日期不太可能是唯一索引。如果可以的话,那么保留单列索引和重复索引就有一个单独的原因。 (也可以看看如果 (A, B, C) 上有索引,那么 (A,B) 上的索引是否多余 https://stackoverflow.com/questions/13791317/is-an-index-on-a-b-reundant-if-there-is-an-index-on-a-b-c/.)

更改索引后,请确保统计信息是最新的(现在或多或少是自动的,但它曾经很重要),然后使用 SET EXPLAIN on 运行查询以检查索引是否正在使用(以及哪些索引正在使用)。正在使用)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Informix 中的组索引 的相关文章

随机推荐

  • 将 useRef 挂钩传递给 ref 属性的正确方法

    我不确定如何更明确地提出这个问题 但它是关于值传递 and 引用传递反应中的情况 还有胡克斯 我正在使用 gsap 来制作 div 滑入和滑出的动画 这是其上下文 但我猜测 ref 的用途并不重要 因此 这工作得很好 尽管这是一种更典型的类
  • 整个应用程序中的全局“搜索功能”

    在我的整个应用程序中 我希望搜索按钮执行单独的操作Activity 即 当我按下搜索按钮时 从应用程序中的任何位置调用一个单独的活动 有什么方法可以代替定义onSearchRequested 在每项活动中 我只是在一个地方配置它 例如Man
  • GET 数据是否也在 HTTPS 中加密?

    当你拿到时 https crypted google com search q s https encrypted google com search q s Is the s查询已加密 还是只是回应 如果不是 为什么谷歌还要对其公共内容进
  • 确定是否向 Firebase 实时数据库添加或删除数据

    每当添加新帖子时 我都会尝试将通知推送到 Android 应用程序 但是 只要数据 更改 即即使帖子被删除 我不需要 通知也会到达 我如何设置一个条件 以便 FCM 仅在添加帖子时才发送通知 这是我的 index js 文件 const f
  • 使用jquery和css点击按钮后旋转div文本

    我想使用 jquery 和 css 单击按钮后旋转 div 文本 如果用户点击Rotate Left按钮 然后文本在左侧旋转 or用户点击Rotate Right按钮然后文本在右侧旋转 Example div Happy Birthday
  • while 循环中的表并排

    in a while loop its creating a list of heading and image links i want to display it as side by side like in following im
  • 使用宏从 Excel 电子表格中删除任何非指定字符

    我正在尝试通过删除任何非标准字符来清理 Excel 中的 CSV 文件 我唯一关心保留的字符是 A Z 0 9 和一些标准标点符号 任何其他字符 我想删除 当它找到包含我未指定的任何字符的单元格时 我已经得到了以下宏来删除整行 但我不确定如
  • 如何在 Angular 2 karma jasmine 测试中从 JSON 文件加载模拟数据?

    我在写信业力茉莉花测试用例角2 我们遇到了在单独的 JSON 文件中模拟数据的需求 因为数据很大 希望确保代码整洁 为此我进行了很多搜索但没有找到合适的解决方案 我们已经使用以下方式模拟 HTTP 服务模拟后端 所以我们不能使用Angula
  • 启动nodejs时出错:openssl配置失败

    启动 Express 节点时出现以下错误 openssl 配置失败 错误 02001003 系统库 fopen 没有这样的 过程 节点无论如何都会启动 我没有尝试使用 SSL 这是起始代码 app Express app set port
  • PHP 和 MySQL - 高效处理多个一对多关系

    我正在寻求一些有关使用 MySQL 和 PHP 检索和显示数据的最佳方法的建议 我有 3 个表 所有一对多关系如下 Each SCHEDULE有很多覆盖每个覆盖都有很多地点 我想检索这些数据 以便它可以全部显示在单个 PHP 页面上 例如列
  • 正则表达式 - 将 target="blank" 添加到我的内容中的所有 标记链接

    有人可以帮我在 C net 中创建一个正则表达式来添加target blank to all a 在我的内容中标记链接 如果链接已经设置了目标 则将其替换为 blank 目的是在新窗口中打开我的内容中的所有链接 感谢你的帮助 dotnet岩
  • Oracle:如何获取刚刚插入的行的序列号?

    如何获取刚刚插入的行的序列号 插入 返回 declare s2 number begin insert into seqtest2 x values aaa returning seq into s2 dbms output put lin
  • 使用 Hive 计算文本变量的单词频率

    我有一个变量 每一行都是一个句子 例子 Row1 Hey how are you Rwo2 Hey Who is there 我希望输出是按单词分组的计数 Example Hey 2 How 1 are 1 我正在使用 split a bi
  • 在 React 应用程序中简单连接到 mongodb

    我使用 create react app 创建了简单的反应应用程序 这个应用程序包含表单 验证和引导程序 没有什么花哨的东西能像魅力一样发挥作用 我还注册了 mongo 以获得免费集群 以便我可以发送一些数据 所以我有这个网址 mongod
  • &(与符号)和 && 或 | 之间的区别(管道)和||在 Objective-C 中?

    我想知道Objective C是否关心我是写 还是 我相信一个与号 会或应该导致如果左侧已经为假 则右侧将不会被评估 这适用于 Objective C 吗 Yes 这些运算符在 C 和 Objective C 中的功能相同 就像在 C 中一
  • Grep 批量 ping

    寻找一种更好的方法来做到这一点 而不是我习惯的 手动 方法 因为这是一个我必须定期经历的过程 我有一系列要 ping 的 IP 从10 0 1 15 to 10 0 50 15 第三个八位位组指的是物理位置 最后一个八位位组指的是该位置处的
  • 使用 docker for windows 工具箱切换到 Windows 容器

    我已经在 Windows 7 64 位操作系统上安装了 docker for windows toolbox 我无法使用 docker 菜单切换到 Windows 容器 因为 docker 图标在系统托盘中不可用 Docker 服务也不可用
  • 如何将配置文件添加到 Eclipse 中的默认 Maven 目标?

    我在 Eclipse 中使用 Maven 来构建和部署代码 选择时 Context Menu gt Run As 几个Maven目标如下 据我所知 如果我想创建自定义构建配置 我会单击 运行配置 来创建自定义配置 然而 似乎没有办法修改菜单
  • 如何使用 django Rest 框架通过直通模型序列化 ManyToManyField

    我有一个 Recipe 模型 其中包含 IngredientType 对象的 M2M 字段 该字段 又名成分列表 通过 Ingredient 对象使用臭名昭著的 through 模型 该对象将额外的数据添加到我的 IngredientTyp
  • Informix 中的组索引

    我有一张桌子叫hitlist 有 3 列 int id long hitlisted date long deleted date 我将根据这些列查询该表 histlisted date frequent hitlisted date de