python - SQLAlchemy 查询结果超时

标签 python mysql sql extjs sqlalchemy

我正在开发一个 Extjs 4 应用程序,我使用从 GUI 发送的参数(文本框、组合框值等)执行查询。 该查询是使用 SQLAlchemy 构建的。我在本地主机上使用 MySQL 数据库。

我执行的查询旨在返回大数据。我的问题是,当我直接在 HeidiSQL 上执行查询时,它会在 0.6 秒内执行,但使用 Extjs(在 chrome 上)会产生超时,并且不会显示任何结果。

这是查询。当我执行它时,它应该返回 300.000 行。

SELECT  /*ALL OF THE COLUMNS OF MY TWO TABLES, GENERATED DYNAMICALLY WITH SQLAlchemy*/
FROM bl, `CR`
WHERE `CR`.`Category` IN ('Failure') AND bl.severity_logged IN ('4_minor') AND bl.product_logged = 'x' AND bl.`productRelease_logged` IN ('0.1', '6.2', '6.4', '6.7');

可能是什么问题? 是不是浏览器缓存问题?

编辑:这是我的带有 SQLAlchemy 的 Python 脚本。

engine = create_engine(
             "mysql://:@localhost/test",
             isolation_level="READ UNCOMMITTED"
        )
meta = MetaData(bind=engine)
meta.reflect(bind=engine)
cr =  meta.tables['cr']
bl = meta.tables['bl']

session = create_session(bind=engine)
...#I create filters based on the GUI values
test_query = session.query(metric_table_object,cr).filter(all_filters) #I then create the query
result_dict = [u.__dict__ for u in test_query.all()] #I store the query result into a dict
print result_dict

最佳答案

作为zzzeek comments , 加载 300,000 个结果对象可能会占用太多内存。也许您可以使用类似 Windowed Range Query 的策略来分块处理数据。 ? This post on the SqlAlchemy mailing list还有一些关于将结果分成 block 的有用详细信息。

关于python - SQLAlchemy 查询结果超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19356338/

相关文章:

python - 如何以人类可读的方式打印 MySQLdb unicode 结果

python 标准输出回车

python - Django MySQL 创建表时出错

php - 无法使用 php-mysql 的面向对象风格访问 mysql 表中的数据

mysql - 如何在 SQL 中找到两列之间所有相反的组合

python - 什么是逻辑? softmax 和 softmax_cross_entropy_with_logits 有什么区别?

mysql - 根据上次在线时间删除所有行?

mysql - 如何改进这个 MySQL 查询?

sql - Oracle-SQL : combine LEFT and INNER JOIN

sql - 如何从一列插入多行?