Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在我的表中创建索引不会降低成本_Sql_Postgresql - Fatal编程技术网

Sql 在我的表中创建索引不会降低成本

Sql 在我的表中创建索引不会降低成本,sql,postgresql,Sql,Postgresql,我有这张桌子: accident_info ( accident_index varchar(20), first_road_class varchar(20), accident_severity varchar(20), date date, urban_or_rural_area varchar(20), weather_conditions varchar(40), year int, inscotland varchar(

我有这张桌子:

accident_info
(
    accident_index varchar(20),
    first_road_class varchar(20),
    accident_severity varchar(20),
    date date,
    urban_or_rural_area varchar(20),
    weather_conditions varchar(40),
    year int,
    inscotland varchar(20)
);
针对该表,我执行以下查询:

select count(accident_index)as hits, first_road_class 
from accident_info 
group by first_road_class;
没有索引

我想创建一个指数来降低我的总成本,但到目前为止我做的那个似乎不起作用。这是:

create index on accident_info(accident_index, first_road_class);

对于此查询:

select count(accident_index) as hits, first_road_class 
from accident_info 
group by first_road_class;

您可以在
事故信息(一级公路,事故索引)
上尝试索引。列的顺序很重要。

您是否检查了
解释分析
是否实际使用了索引?我检查了,但没有使用,感谢您快速响应。您能使用数字添加一个唯一的索引字段并尝试索引吗?这是uni的项目,行/列是固定的,因此,如果这是你的意思,我不能再补充一个。谢谢回答您的问题,并在使用
explain(analyze,buffers)
生成的执行计划中添加注释(而不仅仅是“简单”的解释)。请但由于您的查询需要读取所有行,因此这里不太可能使用索引。启用并行可能会给您带来比索引更大的性能改进。我们尝试了,但没有成功,谢谢您的时间这将帮助sgbd不获取堆表,而只扫描索引叶节点。这仅在您获得仅索引扫描时才有帮助。如果您最近对表格进行了
VACUUM
ed操作,则只会得到仅索引扫描。