Mysql
 sql >> база данни >  >> RDS >> Mysql

задайте сесия в обект на сесия на SQLAlchemy

Използвайте сесия събитие за изпълнение на произволен SQL оператор за всяка нова транзакция. Можете също да използвате събития на ниво връзка, зависи от вашия случай на използване.

Ето как бих го направил на ниво сесия:

Session = sessionmaker()
@event.listens_for(Session, 'before_flush')
def set_max_heap_table_size(session, transaction, connection):
    session.execute('SET max_heap_table_size = 1024 * 1024 * 64')

Ако не сте сигурни кой начин работи за вас, просто ги опитайте, напишете някои тестови случаи и разберете дали това работи за вас.

Може да има едно предупреждение (несигурно):Тъй като връзката не е прекъсната, а се връща в пула, настройката може да остане. В този случай може да искате да прикачите нещо, за да възстановите стойността по подразбиране, напр. на after_flush събитие. Не съм напълно сигурен в това, може да искате да експериментирате. Ако това не е необходимо, можете също да използвате after_begin събитие, но няма реален before_close събитие, което го обвива, така че може да създаде проблеми.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TINYTEXT, TEXT, MEDIUMTEXT и LONGTEXT максимални размери за съхранение

  2. ROW_NUMBER() в MySQL

  3. MySQL ON DUPLICATE KEY вмъкнете в таблица за одит или журнал

  4. Как да нулирате паролата на MySQL root

  5. MySQL - Вземете брояч за всяка дублирана стойност