¿Es extraño que mi conexión SQLAlchemy MySQL siempre termine suspendida?

Tengo una aplicación web Flask que usa SQLAlchemy con MySQL, y he configurado una sesión de alcance (). También tengo un controlador teardown_request que llama a session.remove () después de finalizar cada solicitud. Por alguna extraña razón, si no se realizan solicitudes en la aplicación web durante un día o más, la aplicación obtiene "Operationalerror: MySQL Server ha desaparecido".

En mi misión de depuración, miré SHOW PROCESSLIST y vi lo siguiente:

39817253 | sqladmin | my_host | kb_dev   | Sleep   |  174 |

The 174 es el número de segundos que la conexión desde mi aplicación ha estado "inactiva". Sigue contando si la aplicación no realiza otra solicitud.

Parece que mi aplicación retiene la conexión a MySQL incluso después de que mi solicitud haya finalizado! Y generalmente solo hay un proceso, sin importar cuántas solicitudes haga con mi aplicación, simultáneamente o no.

¿Mi pregunta es si es normal que la conexión esté "durmiendo" tanto tiempo? Estoy bastante seguro de que la suspensión prolongada está causando que MySQL corte la conexión después de un cierto tiempo de espera que a su vez está causando el error "OperationalError: Mysql se ha ido".

Respuestas a la pregunta(2)

Su respuesta a la pregunta