Opimized the query method of a Connection for memory and speed
We now support mysqldb and pymysql, this is what sqlalchemy supports for mysql dialect
In contrast to the outline in #22
We still use sqlalchemy
We still return a pandas.DataFrame by default
I think we still honor the interface provided by the base classes
We have to dynamically load the appropriate cursorclass. I followed the advice I found on the Internet to do this. It does not make sense to only rely on mysqlclient (mysqldb), because installation requires system dependencies and is generally not possible on Windows. So we have to support both. This also means we can remove the specific package from the dependency list and leave this open for the user.
The improvement in memory consumption is dramatic. But I think we still use pretty standard tooling.
Changes in tests:
I managed to start the testdatabase asynchronously during testing, so that
All tests will run against the pymysql and mysqldb drivers without a restart of the database
see #22