sql >> Databáze >  >> RDS >> Mysql

Jak zakázat ukládání do mezipaměti SQLAlchemy?

Obvyklým důvodem, proč si lidé myslí, že ve hře je „mezipaměť“, je kromě obvyklé mapy identity SQLAlchemy, která je pro transakci lokální, to, že pozorují účinky izolace transakcí. Relace SQLAlchemy funguje ve výchozím nastavení v transakčním režimu, což znamená, že čeká, dokud session.commit() je volána, aby uchovala data do databáze. Během této doby ostatní probíhající transakce jinde tato data neuvidí.

Vzhledem k izolované povaze transakcí však existuje další zvrat. Tyto ostatní probíhající transakce nejenže neuvidí data vaší transakce, dokud nebude potvrzena, ale také je v některých případech neuvidí, dokud nebudou potvrzeny nebo vráceny zpět také (což je stejný efekt, jaký zde má vaše close()). Transakce s průměrným stupněm izolace bude držet stav, který byl dosud načten, a bude vám dávat stejný stav lokálně pro transakci, i když se skutečná data změnila – tomu se říká opakovatelné čtení v řeči izolace transakcí.

http://en.wikipedia.org/wiki/Isolation_%28database_systems%29



  1. Záleží na pořadí sloupců v klauzuli WHERE?

  2. Hledání textu v uložené proceduře na serveru SQL

  3. Neznámý Sloupec V Ustanovení Kde

  4. Vytvořte vztah v SQL Server 2017