HTSQL生成的MySQL查询速度非常慢
我有一个包含两个表的数据库: 形容词-ID主键;名称varchar; 形容词-ID主键;形容词ID外键;检查\u ID外键;计数整数 我想从形容词_评论中获得一个不同的形容词_ID列表,其中包含所有行中具有相同形容词_ID的“COUNT”列中的值之和 形容词表有46000行,形容词有2849708行 我正在使用以下HTSQL查询: /形容词{name,sum(形容词_reviews.count)} 将其转换为SQL:HTSQL生成的MySQL查询速度非常慢,mysql,sql,htsql,Mysql,Sql,Htsql,我有一个包含两个表的数据库: 形容词-ID主键;名称varchar; 形容词-ID主键;形容词ID外键;检查\u ID外键;计数整数 我想从形容词_评论中获得一个不同的形容词_ID列表,其中包含所有行中具有相同形容词_ID的“COUNT”列中的值之和 形容词表有46000行,形容词有2849708行 我正在使用以下HTSQL查询: /形容词{name,sum(形容词_reviews.count)} 将其转换为SQL: SELECT `adjectives`.`name`, COAL
SELECT `adjectives`.`name`,
COALESCE(`adjectives_reviews`.`sum`, 0)
FROM `adjectives`
LEFT OUTER JOIN (SELECT CAST(SUM(`adjectives_reviews`.`count`) AS SIGNED INTEGER) AS `sum`,
`adjectives_reviews`.`adjective_id`
FROM `adjectives_reviews`
GROUP BY 2) AS `adjectives_reviews`
ON (`adjectives`.`id` = `adjectives_reviews`.`adjective_id`)
ORDER BY `adjectives`.`id` ASC
此查询生成我想要的结果,但速度太慢。它是如此之慢,事实上,HTTP服务器超时,我无法获得我需要的输出CSV文件。我正在寻找一种优化此查询的方法,或者另一种不使用HTSQL的HTTP接口而以CSV形式获取输出的方法。通过使用本机mysql客户端并在查询中添加3行,我能够以CSV形式获取结果:
SELECT `adjectives`.`name`,
COALESCE(`adjectives_reviews`.`sum`, 0)
FROM `adjectives`
LEFT OUTER JOIN (SELECT CAST(SUM(`adjectives_reviews`.`count`) AS SIGNED INTEGER) AS `sum`,
`adjectives_reviews`.`adjective_id`
FROM `adjectives_reviews`
GROUP BY 2) AS `adjectives_reviews`
ON (`adjectives`.`id` = `adjectives_reviews`.`adjective_id`)
ORDER BY `adjectives`.`id` ASC
INTO OUTFILE '/tmp/adjectives.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
它跑得相当快