- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
要创建我的表和索引,我使用以下代码:
CREATE TABLE IF NOT EXISTS users (
id SERIAL NOT NULL,
name VARCHAR(512) NOT NULL,
PRIMARY KEY (id));
CREATE INDEX users_name_idx ON users (lower(name::varchar(16)));
我的问题 - users_name_idx
索引用于以下查询:
SELECT * FROM users WHERE LOWER(name) LIKE 'somename%'
?SELECT * FROM users ORDER BY name
?最佳答案
您的索引不能被您的任何查询使用,因为表达式与查询中的表达式不同:
test=> \d users
Table "laurenz.users"
Column | Type | Nullable | Default
--------+------------------------+----------+-----------------------------------
id | integer | not null | nextval('users_id_seq'::regclass)
name | character varying(512) | not null |
Indexes:
"users_pkey" PRIMARY KEY, btree (id)
"users_name_idx" btree (lower(name::character varying(16)::text))
test=> SET enable_seqscan = off;
test=> EXPLAIN SELECT * FROM users WHERE LOWER(name) LIKE 'somename%';
QUERY PLAN
---------------------------------------------------------------------------
Seq Scan on users (cost=10000000000.00..10000000012.10 rows=1 width=520)
Filter: (lower((name)::text) ~~ 'somename%'::text)
(2 rows)
test=> EXPLAIN SELECT * FROM users ORDER BY name;
QUERY PLAN
-----------------------------------------------------------------------------------
Sort (cost=10000000016.39..10000000016.74 rows=140 width=520)
Sort Key: name
-> Seq Scan on users (cost=10000000000.00..10000000011.40 rows=140 width=520)
(3 rows)
对于要使用的索引,您必须在查询中使用相同的表达式,包括类型转换。
除此之外,除非您的列具有排序规则 C
,否则您的索引不能在 LIKE
查询中使用。您已同意使用 text_pattern_ops
运算符类。
我想创建这样一个索引背后的原因是为了减少索引的大小,这是一件值得称赞的事情。
我会推荐这样的索引:
CREATE INDEX ON users (lower(name::varchar(16)) text_pattern_ops);
然后使用这个查询:
SELECT * FROM users
WHERE lower(name) LIKE 'somename%'
AND lower(name::varchar(16)) LIKE substr('somename%', 1, 16);
如果 somename
超过 15 个字符,第二个条件可能是有损的,但它可以使用索引。第一个条件过滤掉误报。
不幸的是,在订购时没有这样的技巧。
关于sql - 在 postgresql 中使用具有较低功能的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49935785/
面对这样的事实,MatPlotlib 在使用 self.frame.canvas.draw() 时,我在一个简单的图表上仅获得了 12 FPS。我发现一篇关于加速MatPlotlib的好文章:http
我的问题是我的 GameScene 以大约两倍的节点开始,并在几秒钟内绘制计数和 40 fps。这个问题仅出现在我的 iPad(迷你视网膜)上,而在我的 iPhone(5)上,游戏从一开始就运行得很顺
好吧,我开始理解 Android Fragments,但这仍然让我感到困惑。我需要一点帮助。正如它所说,Android fragment 从 API 级别 11 开始受支持,但您可以为较低级别的 AP
我正在尝试在 iPhone 上进行一些图像处理。我正在使用http://developer.apple.com/library/ios/#qa/qa2010/qa1702.html捕获相机帧。 我的问
如果我没有以某种方式更新屏幕,对 canvas.repaint() 的几次调用似乎会被完全跳过。移动鼠标时,一切都很好。 我的代码如下: package yeet.gfxTut; import jav
我知道 android.utils.Base64 仅在 API level8 上可用,但我也听说过这个 Bouncy CaSTLe Base64(org.bouncycaSTLe.util.encod
也许我的逻辑暂时停止工作了,但我发现这种行为令人困惑。假设我有一个 TreeMap 如下: TreeMap map = new TreeMap(Collections.reverseOrder()
关于我的导航,我遇到的问题是第二层被视频或其他由 javascript 创建的元素覆盖(当您将鼠标悬停在“Hier lebe ich”或“Am Meer”时可见): http://www.ulrich
我最初在使用纹理时遇到了颜色困惑的问题,但我设法修复了它(问题是我没有在需要时禁用纹理)。完成此操作后,颜色发生了变化,但仍然不是我想要的颜色 - 白色而不是纯蓝色 (0,0,255) RGB。完整的
在我的游戏中,我在 render 中创建了许多循环和方法。我笔记本电脑的 FPS 范围从 56 到 60,没问题。但是,当我在 Galaxy Note 4 的 Android 操作系统中运行它时,FP
所以我今天一直在试验 z-index,我真的不明白这里发生了什么。 这是一个非常简化的 HTML 版本: // content has z-index of 30, pos abs // c
我用 2 个线程编写了小 WPF 应用程序 - 主线程是 GUI 线程,另一个线程是工作线程。 应用程序有一个带有一些控件的 WPF 表单。有一个按钮,允许选择目录。选择目录后,应用程序会扫描该目录中
我正在努力寻找适合我的数据集的学习算法。 我正在处理一个典型的回归问题。数据集中有 6 个我关心的特征。我的数据集中大约有 800 个数据点。这些特征和预测值具有很高的非线性相关性,因此这些特征并非无
这个问题在这里已经有了答案: Are Activity/Fragment Transitions compatible with pre-Lollipop devices? (4 个回答) 关闭 7
我正在尝试创建一个具有云形成的 AWS S3 存储桶。 S3 存储桶名称需要小写,但我想使用参数来组合该名称。该参数为大写。 我找到了一条路。 我读过这篇文章。 https://github.com/
这太奇怪了,尽管复制粘贴了代码,但我什至无法在 jsfiddle 中复制错误。 基本上我是这样的: 使用这个 CSS: .container { background: t
我是一名优秀的程序员,十分优秀!