2

我有一个包含 1000 万个条目的表,其中一列是电子邮件地址。我想在这个列上创建一个哈希索引,因为查询都是关于相等比较的。

数据库:Postgres 8.3.3
机器:24GB Ram 和 16 核。

创建哈希索引大约需要 51 分钟,但是,如果我在电子邮件地址的小写字母上创建哈希索引,则只需不到 3 分钟!

例子:

  • create index xyz on table_xyz using hash(email): 创建这个索引需要 51 分钟
  • create index xyz on table_xyz using hash(lower(email)):创建此索引需要 3 分钟。

我的 maintenance_work_mem 设置为 16MB。shared_buffers = 1GB

什么解释了这种行为?

4

0 回答 0