Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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
在PostgreSQL中优化SQL查询(选择正确的索引)_Sql_Database_Postgresql - Fatal编程技术网

在PostgreSQL中优化SQL查询(选择正确的索引)

在PostgreSQL中优化SQL查询(选择正确的索引),sql,database,postgresql,Sql,Database,Postgresql,我有一个SQL查询,我想优化以改进结果 查询: SELECT twm.id AS id, twm.fecha_id AS fecha, twm.nombre_busqueda AS busquedas, twm.tipo_mencion_leyenda AS tipo_mencion, twm.sentimiento AS sentimiento, CASE WHEN sum(twm.menciones) IS null

我有一个SQL查询,我想优化以改进结果

查询:

SELECT 
    twm.id AS id, 
    twm.fecha_id AS fecha,
    twm.nombre_busqueda AS busquedas, 
    twm.tipo_mencion_leyenda AS tipo_mencion, 
    twm.sentimiento AS sentimiento,
    CASE 
        WHEN sum(twm.menciones) IS null THEN 0 
        ELSE sum(twm.menciones) 
    END AS menciones,
    twm.tipo_source_nombre AS sources, 
    twm.tipo_de_site_leyenda AS typeof
FROM 
    dashboards_tablaagregadawebdiaria twm
WHERE 
    twm.corporativa = FALSE 
    AND twm.cuenta_id = 115 
    AND twm.tipo_buzz_id = 1    
    AND twm.fecha_id >= 20150831 
    AND twm.fecha_id <= 20150929
GROUP BY 
    twm.id,fecha, 
    busquedas, 
    tipo_mencion, 
    sentimiento, 
    sources, 
    typeof
有没有关于缩短查询时间的帮助或建议??我已经创建了以下索引,但还不够

CREATE INDEX dashboards_tablaagregadawebdiaria_cuenta_id
 ON dashboards_tablaagregadawebdiaria
  USING btree
  (cuenta_id);

谢谢

您的查询中只有一个带有where子句的表。最好的索引是复合索引:

create index idx_dashboards_tablaagregadawebdiaria_4 on
    dashboards_tablaagregadawebdiaria(cuenta_id, tipo_buzz_id, corporativa,
                                      fecha_id);

你能把explain-analyze的输出添加到你的问题中吗?我只是添加explain-analyze。57毫秒相当快。你需要多快?
CREATE INDEX dashboards_tablaagregadawebdiaria_cuenta_id
 ON dashboards_tablaagregadawebdiaria
  USING btree
  (cuenta_id);
create index idx_dashboards_tablaagregadawebdiaria_4 on
    dashboards_tablaagregadawebdiaria(cuenta_id, tipo_buzz_id, corporativa,
                                      fecha_id);