PostgreSQL高级构建块详解
索引相关
在PostgreSQL中,索引是提高查询性能的重要工具。但有些查询方式可能无法使用索引扫描,而索引扫描通常是更优的方法。
- 表达式索引 :当使用 lower(first_name) 函数时,由于函数值在执行前无法确定,所以无法使用索引。对于正则表达式,其可能匹配一个或多个值,也难以使用索引。为解决这些问题,可以在 lower() 函数上创建索引,示例如下:
CREATE index ON account(lower(first_name));
SELECT * FROM account WHERE lower(first_name) = 'foo';
表达式索引还可用于将一种数据类型转换为另一种数据类型来查找行。例如,孩子的出生信息可存储为时间戳,但我们通常只搜索出生日期而非具体时间。
- 唯一索引 :唯一索引能保证表中某行特定值在全表范围内的唯一性。在 account 表中, email 列有唯一检查约束,这通过唯一索引实现,可通过 \d 元命令查看:
car_portal=# \d account
Table "car_portal_app.account"
Colum
订阅专栏 解锁全文
31

被折叠的 条评论
为什么被折叠?



