相关疑难解决方法(0)

PostgreSQL 中 LIKE、SIMILAR TO 或正则表达式的模式匹配

我必须编写一个简单的查询,在其中查找以 B 或 D 开头的人名:

SELECT s.name 
FROM spelers s 
WHERE s.name LIKE 'B%' OR s.name LIKE 'D%'
ORDER BY 1
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法重写它以提高性能。所以我可以避免or和/或like

postgresql index regular-expression pattern-matching string-searching

123
推荐指数
3
解决办法
18万
查看次数

LIKE 是如何实现的?

谁能解释一下 LIKE 运算符是如何在当前数据库系统(例如 MySQL 或 Postgres)中实现的?或者指出一些解释它的参考资料?

天真的方法是检查每条记录,在感兴趣的字段上执行正则表达式或部分字符串匹配,但我有一种感觉(希望)这些系统做一些更聪明的事情。

mysql postgresql performance full-text-search pattern-matching

24
推荐指数
3
解决办法
1万
查看次数

向 Postgres 数据库添加新的排序规则

我有这些整理:

postgres=# select * from pg_collat​​ion;
  姓名 | collnamespace | 领主| collencoding | 整理 | 类型  
------------+--------------+-----------+--------- -----+-------------+------------
 默认 | 11 | 10 | -1 | |
 C | 11 | 10 | -1 | C | C
 POSIX | 11 | 10 | -1 | POSIX | POSIX
 zh_CN | 11 | 10 | 6 | en_US.utf8 | en_US.utf8
 en_US.utf8 | 11 | 10 | 6 | en_US.utf8 | en_US.utf8
 ucs_basic | 11 | 10 | 6 | C …

postgresql collation localization

6
推荐指数
1
解决办法
2万
查看次数

未使用数据类型 citext 的列上的索引

在 PostgreSQL 9.4 中,具有以下架构:

CREATE TABLE people (
    id INTEGER PRIMARY KEY,
    name TEXT,
    junk CHAR(1000)
);

INSERT INTO people(id, name)
 SELECT generate_series(1,100000), md5(random()::text);

CREATE INDEX ON people (name text_pattern_ops);
Run Code Online (Sandbox Code Playgroud)

如果我按名称搜索,则使用索引:

test=# explain analyze select id, name from people where name like 'a%';
                                                           QUERY PLAN                                                           
--------------------------------------------------------------------------------------------------------------------------------
 Bitmap Heap Scan on people  (cost=248.59..1160.92 rows=6061 width=37) (actual time=2.412..8.340 rows=6271 loops=1)
   Filter: (name ~~ 'a%'::text)
   Heap Blocks: exact=834
   ->  Bitmap Index Scan on people_name_idx  (cost=0.00..247.08 rows=6266 width=0) (actual time=2.123..2.123 rows=6271 loops=1)
         Index Cond: …
Run Code Online (Sandbox Code Playgroud)

postgresql index pattern-matching case-sensitive

3
推荐指数
1
解决办法
3868
查看次数