Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie deaktiviere ich den MySQL-Abfrage-Cache, während ich SQLAlchemy verwende?

Verwenden Sie einen Ereignis-Hook unmittelbar nachdem Sie Ihre Engine definiert haben:

from sqlalchemy import event

def disable_query_cache(conn, record):
    conn.cursor().execute("SET SESSION query_cache_type = OFF")


# this is probably in your Pyramid setup code
engine = create_engine(...)

if DEBUGGING:
    event.listen(engine, 'connect', disable_query_cache)

Sie können dies global tun, indem Sie den Hook zum Pool hinzufügen Klasse selbst, aber (a) Sie möchten wahrscheinlich, dass die Pyramid-Einstellungen sowieso verfügbar sind, damit Sie entscheiden können, ob Sie den Hook hinzufügen möchten oder nicht, und (b) der globale Status schlecht ist :)