获取具有文本数据类型慢查询的列
Get column with text datatype slow query
我有以下 table:
create table tbl_img
(
id int,
col_img text
);
我在col_img
列中存储了图像。
当我尝试获取数据时:
select t1.id,t1.col1,t2.col_img
from tbl_test t1
left join tbl_img t2 on t1.img_id = t2.id;
获取数据需要超过 1 分钟的时间。如果我从列列表中删除 t2.col_img
,它将在几毫秒内给出结果。
是否有任何解决方法可以提高性能?
如果从 SELECT
列表中删除 t2.col_img
,PostgreSQL 足够聪明,知道它可以跳过左连接,因为 id
on tbl_img
有一个唯一约束。
对于 t2.col_img
,PostgreSQL 实际上必须执行连接,因此成本要高得多。
您几乎无法加快速度:
增加
work_mem
希望获得散列连接(如果您还没有)获得更快的存储空间或更多的 RAM 来缓存数据