我使用 md5 在 postgres 中为下面提到的表创建了索引。索引和表格如下:
create table my_table(col1 character varying, col2 character varying, col3 character varying);
my_table 看起来像(我刚刚给出了一个例子。我的实际表是 1Tera Byte):
col1 col2 col3
<a12> <j178> <k109>
create index index1 on my_table (md5(col1), md5(col2), md5(col2));
我试图在不使用 md5 的情况下创建索引,但是我最终得到了错误:
ERROR: index row size 2760 exceeds maximum 2712 for index "index1"
HINT: Values larger than 1/3 of a buffer page cannot be indexed.
Consider a function index of an MD5 hash of the value, or use full text indexing.
但是,我注意到无论我是否创建了索引,我的查询处理时间都保持不变。我很困惑可能是什么原因。有人可以帮我吗?
我触发的 sql 查询的形式为:
select col3 from my_table where col1='<a12>' and col2='<j178>';