我在MySQL数据库中使用SQLAlchemy,我想计算表中的行数(大约300k).SQLAlchemy count函数的运行时间大约是直接在MySQL中编写同一个查询的50倍.我做错什么了吗?
# this takes over 3 seconds to return
session.query(Segment).count()
然而:
SELECT COUNT(*) FROM segments;
+----------+
| COUNT(*) |
+----------+
| 281992 |
+----------+
1 row in set (0.07 sec)
速度的差异随着表格的大小而增加(在100k行下几乎不明显).
Update
用session.query(Segment.id).count()
而不是session.query(Segment).count()
似乎可以达到这个目的,并使其加速.但我仍然不明白为什么最初的查询速度较慢.