我使用Airflow MySQLHook在MariaDB中运行以下查询。该表有500万行和15列,运行2小时后超时!
错误消息:
(2013,'查询期间与服务器失去连接')无法回滚; 1009)
我需要根据modified_date获取所有行,modified_date是一个时间戳,我最初尝试过这样做:
select * from comment_table where DATE(modified_date) = '2023-06-01';
字符串
然后我试图通过基于6小时时间戳间隔获取modified_date来将其分块,但它仍然超时,并且仍然运行2小时!
SELECT * FROM comment_table WHERE modified_date between str_to_date('2023-06-01 00:00:00', '%Y-%m-%d %H:%i:%s') AND str_to_date('2023-06-01 06:00:00', '%Y-%m-%d %H:%i:%s');
型
这就是整个代码的样子:
hook = MySqlHook("mariadb_conn_id")
with hook.get_conn().cursor() as cursor:
query = 'select * from comment_table.....'
df_results = pd.read_sql(query, hook.get_conn())
型
1条答案
按热度按时间kknvjkwl1#
我通过向
modified_date
列添加索引来修复我的问题,我只是忘记了...而@UncleCarl关于在查询之前做一个EXPLAIN的建议也让我看到索引是在创建之后添加的。