加速运行多个mysql查询的python

时间:2015-06-16 23:24:12

标签: python mysql django

我的python代码生成一个表,其中包含作为URL访问的列和行。为了获取每个单元的数据,执行对mysql数据库的查询。代码运行得非常慢。我已经为mysql表添加了索引,但这并没有真正帮助。我以为是因为我正在使用连接构建html表代码,但即使使用列表和连接也没有修复速度。代码在django(使用额外的数据库连接)和独立的python中运行缓慢。任何加快这一点的帮助都将受到赞赏。

从循环中调用的示例查询:

def get_postcounts(week):
    pageviews = 0
    cursor = connections['olap'].cursor()
    sql = "SELECT SUM(F.pageview) AS pageviews FROM fact_coursevisits F INNER JOIN dim_dates  D ON F.Date_Id = D.Id WHERE D.date_week=%d;" % (week)
    row_count = cursor.execute(sql);
    result = cursor.fetchall()
    for row in result:
       if row[0] is not None:
            pageviews = int(row[0])
    cursor.close()
    return pageviews

1 个答案:

答案 0 :(得分:0)

可能是因为您正在执行的查询数量(如果您不得不多次调用此方法)。

我建议在一个查询中查询查看次数和一定时间内的一周,然后读取结果。