- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 MySQL 新手,我需要在现有表(包含大约 20 万行)上添加索引。
Table mytable: (id:integer, created_time:timestamp, deleted_time:timestamp)
我有 2 个需要从索引中获益的查询:
select s.id from mytable s
where s.completed_time is not null
and s.completed_time < ?
and ( s.deleted_time is null
or s.deleted_time >= ? );
和:
select s.id from mytable s
where
s.completed_time is not null
and (
( s.deleted_time is not null
and s.deleted_time >= ?
and s.deleted_time < ? )
or ( s.completed_time >= ?
and s.completed_time < ? ) ) ;
我正在考虑引入多列索引(在 completed_time 和 deleted_time 上)但是,我不确定条件“s.completed_time 不为空”是否符合使这些查询使用复合索引的条件。
您对什么是最好的(复合索引或 2 个索引)有什么想法吗?我正在尝试使用“解释”来找出最好的方法,但我不确定如何解释结果。
更一般地说:对于在 (column1, column2) 上具有复合索引的表,我知道仅在 column2 上进行过滤不会使用该索引。但是,如果我引入一个虚拟条件,例如 (column1 > MIN_VALUE),或者(column1 不为空),当这样做是正确的时候会怎样?
谢谢!
最佳答案
假设您提到的两个查询将被“频繁”使用,我会建议在两列上使用复合索引而不是两个不同的索引。
如您所知,搜索两列的查询可能有时会通过(粗略地)将这两个索引合并为一个来使用两个单独的索引。但这是次优的,并且在性能方面有成本。
反之,复合索引只有在搜索条件涉及到最左边的列时才能使用,即as the manual puts it :
MySQL can use multiple-column indexes for queries that test all the columns in the index, or queries that test just the first column, the first two columns, the first three columns, and so on
关于您建议的 hack(引入虚拟条件以便能够使用索引),这可能有效,但我宁愿建议仅在 column2
上创建第二个索引(除了(column1, column2)
上的双列索引)。这是一个(小)成本,但更加优雅和可重用。
关于去掉 NULL
值的建议,我强烈反对。使用 0
在语义上是不正确的。 0
表示“零”,NULL
表示“无值”。您的所有测试都需要考虑这个特殊值,而 IS NULL
是标准的并且到处都很好理解。它在某些情况下也不切实际(尝试使用 SQL_MODE='TRADITIONAL'
插入 0
)。
另一方面,性能提升值得怀疑(我相信这主要是基于 NULL
值未编入索引的错误假设)。很容易验证像 s.completed_time IS NOT NULL
这样的查询是否会命中索引(如果存在这样的索引)。
关于mysql - 综合指数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16905323/
如何根据 e(公钥)、d(私钥)和模数计算 p 和 q 参数? 我手边有 BigInteger 键,我可以将粘贴复制到代码中。一个公钥、一个私钥和一个模数。 我需要据此计算 RSA 参数 p 和 q。
如何在 JavaScript 中计算指数? 比如你会怎么做 12^2? 最佳答案 Math.pow() : js> Math.pow(12, 2) 144 关于JavaScript 指数,我们在Sta
也许是时候喝一杯咖啡了,但我看到了一个我没想到会看到的奇怪问题。 我正在阅读 JavaScript The Good Parts,在语法部分我看到以下内容: If a number literal h
我正在使用带有 eclipse link 2.3 &Derby db 的实体管理器 JPA,并且我有包含 10 个实体的模型,对于每个实体,我需要存储 1000 条记录,此过程大约需要 70 秒。我已
我习惯了制作 iPhone 应用程序,但现在我需要制作 Mac 应用程序。因此我必须切换到 Cocoa 框架。 有没有类似于 Cocoa 中的 array.index(of: ) 的东西? iOS 示
我正在尝试在控制台中打印文件名“xyz.0.html”。它吐出一个错误 "substring not found" 目录中的文件: xyz.0.html xyz.1.html xyz.2.html p
我需要计算 h-index来 self 存储在树中的出版物列表。 我所做的是按递减顺序遍历树,获取引用位置列表 看起来像: line 1 10 line 2 5 line 3 4 line 4 0 我
有没有一种更简单的方法将幂符号/指数符号转换为其等价数字(即从 ⁸ 到 8),而不仅仅是一堆 replace是吗? 编辑:谢谢大家的解决方案! 最佳答案 您可以创建一个正则表达式并执行一次 repla
我编写这段代码是为了查找指数 b 的最后一位数字,但 SPOJ 说它是错误的。我尝试了几乎所有的测试用例,但找不到错误。问题:http://www.spoj.com/problems/LASTDIG/
我对 CSS 中的 z-index 有疑问。 代码: div.banniere{ background-image:url('../img/banniere.png'); backgr
我有一个弹出的“对话框”小部件,其 z-index 为 100。当我创建另一个弹出窗口( float div)时,它出现在对话框小部件下方,因为我没有明确设置 z -新弹出窗口的索引。 结构最终看起来
我正在尝试从一篇学术论文中实现一个真相发现算法。它是一种流式算法,可以实时推断真相和源质量。如果有人有兴趣阅读本文,请在此处了解更多详细信息:http://dl.acm.org/citation.cf
这个问题在这里已经有了答案: Difference between Big-O and Little-O Notation (5 个答案) 关闭 8 年前。 直观上,nb = o(an)(o 是小哦
我在这里使用 sklearn 制作了一个决策树,在 SciKit learn DL 包下,即。 sklearn.tree.DecisionTreeClassifier().fit(x,y)。 如何在每
为了解释这一点,这基本上是一种将浮点向量数据缩小为 8 位或 16 位有符号或无符号整数的方法,该整数具有单个公共(public)无符号指数(最常见的是 bs16 以 11 为常用指数的精度)。 我不
是否可以在 Algolia 中“加入”索引?获得合并结果? 例如: 如果我有两个索引:一个用于“用户”,一个用于“事件”。每个用户都有 id 和 name 属性。每个事件都有 date 和 userI
有人可以提供一个关于如何在 pytorch 中为语义分割计算 IoU(交集对联合)的玩具示例吗? 最佳答案 我在某处找到了它并为我改编了它。如果我能再次找到它,我会发布链接。抱歉,如果这是重复的。 这
我正在将 NativeBase 与指数一起使用。标题位于手机的状态栏下方。您可以在 NativeBase 中看到这一点指数发布的演示。 有没有人解决这个问题? 最佳答案 由于此问题仅在 Android
基本上,有20只羊为一组。当羊群发展到80只羊后,就不再需要有人看管了。每年 t 的羊数量 N 可以通过以下公式找到: N = 220/(1 + 10(0.83)^t) 该程序试图找出羊需要被监管多少
我正在尝试编写一个 SPARQL 查询,我想在其中过滤某些内容的平方,但我根本无法弄清楚如何计算数字的平方(x2)(当然,除了将其与自身相乘之外)。我猜想有一个名为 math:sqrt() 的平方根函
我是一名优秀的程序员,十分优秀!