我正在使用sqlalchemy(表达式语言,而不是完整的ORM)与
MySQL并经历一些意想不到的缓慢.特别是,sqlalchemy执行选择查询所花费的时间比从mysql命令行执行相同查询所花费的时间大十倍.
cprofile的输出:
ncalls tottime percall cumtime percall filename:lineno(function)
100 206.703 2.067 206.703 2.067 {method 'query' of '_mysql.connection' objects}
MySQL时间:0.26秒
共识似乎是使用sqlalchemy有一些开销,但不是这么多.关于什么可能导致这样的行为的任何建议?
查询通常具有以下形式:
SELECT fieldnames.minage, fieldnames.maxage, fieldnames.race,
fieldnames.sex, sum( pop.population ) AS pop, pop.zip5
FROM pop
INNER JOIN fieldnames ON fieldnames.fieldname = pop.fieldname_id
WHERE fieldnames.race IN ("White alone")
AND fieldnames.sex IN ("Female")
AND fieldnames.maxage >=101
AND fieldnames.minage <=107
GROUP BY fieldnames.minage, fieldnames.maxage