相关疑难解决方法(0)

PostgreSQL LIKE查询性能变化

关于LIKE查询数据库中特定表的响应时间,我看到了相当大的变化.有时我会在200-400毫秒内得到结果(非常可接受),但有时候返回结果可能需要30秒.

我知道LIKE查询是非常耗费资源的,但我只是不明白为什么响应时间会有这么大的差异.我已经在该owner1字段上构建了一个btree索引,但我认为这对LIKE查询没有帮助.有人有主意吗?

示例SQL:

SELECT gid, owner1 FORM parcels
WHERE owner1 ILIKE '%someones name%' LIMIT 10
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

SELECT gid, owner1 FROM parcels
WHERE lower(owner1) LIKE lower('%someones name%') LIMIT 10
Run Code Online (Sandbox Code Playgroud)

和:

SELECT gid, owner1 FROM parcels
WHERE lower(owner1) LIKE lower('someones name%') LIMIT 10
Run Code Online (Sandbox Code Playgroud)

有类似的结果.
表行数:约95,000.

postgresql indexing query-optimization pattern-matching sql-like

103
推荐指数
3
解决办法
7万
查看次数

PostgreSQL是否支持"不区分重音"排序规则?

在Microsoft SQL Server中,可以指定"重音不敏感"排序规则(对于数据库,表或列),这意味着可以进行类似的查询

SELECT * FROM users WHERE name LIKE 'João'
Run Code Online (Sandbox Code Playgroud)

找到一个带有Joao名字的行.

我知道可以使用unaccent_string contrib函数从PostgreSQL中删除字符串中的重音符号,但我想知道PostgreSQL是否支持这些"重音不敏感"排序规则,以便SELECT上述方法可行.

sql postgresql indexing localization pattern-matching

88
推荐指数
2
解决办法
3万
查看次数

如何在数据库创建时安装Postgres扩展?

如果rake命令db:create可以跟随postgresql安装脚本,那将是可爱的.例如,这.(必须以postgres用户身份运行):

CREATE EXTENSION "fuzzystrmatch";
Run Code Online (Sandbox Code Playgroud)

这是因为,在这一刻,我每次创建数据库时都会手动执行此操作.

任何提示?

postgresql ruby-on-rails

23
推荐指数
2
解决办法
9401
查看次数

从字符串中删除重音符号/变音符号,同时保留其他特殊字符(尝试过mb_chars.normalize和iconv)

有一个非常类似的问题.其中一个解决方案使用如下代码:

string.mb_chars.normalize(:kd).gsub(/[^x00-\x7F]/n, '').to_s
Run Code Online (Sandbox Code Playgroud)

这会产生奇迹,直到你注意到它还会移除空格,圆点,破折号以及谁知道还有什么.

我不是很确定第一个代码是如何工作的,但它是否可以剥离重音符号?或至少给出一个保留的字符列表?我对regexps的了解很少,但我尝试过(无济于事):

/[^\-x00-\x7F]/n # So it would leave the dash alone
Run Code Online (Sandbox Code Playgroud)

我要做这样的事情:

string.mb_chars.normalize(:kd).gsub('-', '__DASH__').gsub
  (/[^x00-\x7F]/n, '').gsub('__DASH__', '-').to_s
Run Code Online (Sandbox Code Playgroud)

残暴?是...

我也尝试过:

iconv = Iconv.new('UTF-8', 'US-ASCII//TRANSLIT') # Also tried ISO-8859-1
iconv.iconv 'Café' # Throws an error: Iconv::IllegalSequence: "é"
Run Code Online (Sandbox Code Playgroud)

请帮忙?

ruby string ruby-on-rails diacritics

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

如何在PostgreSQL和JPA 2中做一个不区分大小写和重音不敏感的东西?

我有一个使用PostgreSQL 9.X和JPA2(Hibernate实现)的Java EE项目.如何强制类似查询不区分大小写并且不区分重音?

我能够更改数据库的字符集,因为它是第一个使用它的项目.

postgresql java-ee jpa-2.0 postgresql-9.1

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