我是sqlalchemy新手,在针对现有表的简单查询中遇到性能问题。select查询正在筛选表的主键并仅返回该值。即使查询运行得很快,实际返回结果也需要将近两秒钟的时间(见日志底部)。它也只发生在运行的第一个查询上。查看日志,sqlalchemy似乎正在运行几个额外的查询,这至少是造成速度减慢的部分原因(它们不会在后续查询中运行)。我试图理解它为什么要运行这些额外的查询,以及是否有可能阻止它这样做
INFO: SHOW VARIABLES LIKE 'sql_mode'
2020-02-27 15:08:42,292 INFO sqlalchemy.engine.base.Engine ()
INFO: ()
2020-02-27 15:08:42,366 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES LIKE 'lower_case_table_names'
INFO: SHOW VARIABLES LIKE 'lower_case_table_names'
2020-02-27 15:08:42,367 INFO sqlalchemy.engine.base.Engine ()
INFO: ()
2020-02-27 15:08:42,522 INFO sqlalchemy.engine.base.Engine SELECT DATABASE()
INFO: SELECT DATABASE()
2020-02-27 15:08:42,522 INFO sqlalchemy.engine.base.Engine ()
INFO: ()
2020-02-27 15:08:42,666 INFO sqlalchemy.engine.base.Engine show collation where `Charset` = 'utf8mb4' and `Collation` = 'utf8mb4_bin'
INFO: show collation where `Charset` = 'utf8mb4' and `Collation` = 'utf8mb4_bin'
2020-02-27 15:08:42,667 INFO sqlalchemy.engine.base.Engine ()
INFO: ()
2020-02-27 15:08:42,743 INFO sqlalchemy.engine.base.Engine SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1
INFO: SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1
2020-02-27 15:08:42,743 INFO sqlalchemy.engine.base.Engine ()
INFO: ()
2020-02-27 15:08:42,832 INFO sqlalchemy.engine.base.Engine SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1
INFO: SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1
2020-02-27 15:08:42,833 INFO sqlalchemy.engine.base.Engine ()
INFO: ()
2020-02-27 15:08:42,909 INFO sqlalchemy.engine.base.Engine SELECT CAST('test collated returns' AS CHAR CHARACTER SET utf8mb4) COLLATE utf8mb4_bin AS anon_1
INFO: SELECT CAST('test collated returns' AS CHAR CHARACTER SET utf8mb4) COLLATE utf8mb4_bin AS anon_1
2020-02-27 15:08:42,910 INFO sqlalchemy.engine.base.Engine ()
INFO: ()
2020-02-27 15:08:43,130 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
INFO: BEGIN (implicit)
Start Query: %s SELECT orders.order_number AS orders_order_number
FROM orders
WHERE orders.order_number = %s
LIMIT %s
2020-02-27 15:08:43,132 INFO sqlalchemy.engine.base.Engine SELECT orders.order_number AS orders_order_number
FROM orders
WHERE orders.order_number = %s
LIMIT %s
INFO: SELECT orders.order_number AS orders_order_number
FROM orders
WHERE orders.order_number = %s
LIMIT %s
2020-02-27 15:08:43,132 INFO sqlalchemy.engine.base.Engine (13145, 1)
INFO: (13145, 1)
Query Complete!
Query Time: %f 0.0731968879699707 (Generated using: https://docs.sqlalchemy.org/en/13/faq/performance.html)
Total Time: 1.8191041946411133 (Generated by wrapping query call)
目前没有回答
相关问题 更多 >
编程相关推荐