Исходный запрос sqlalchemy медленно возвращает результат - PullRequest
0 голосов
/ 28 февраля 2020

Я новичок в sqlalchemy и сталкиваюсь с проблемами производительности простого запроса к существующей таблице. Запрос на выборку фильтрует первичный ключ таблицы и возвращает только это значение. Требуется около двух секунд, чтобы результат действительно был возвращен, даже если запрос выполняется быстро (см. Нижнюю часть журнала). Это также происходит только при первом запуске запроса. Глядя на журнал, 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...