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

Jak zabránit rozbití vybraných nalezených_řádků v podmínkách závodu?

Pokud jde o transakce, existují určité problémy a různé úrovně izolace jim více či méně brání. Popsal jsem to ve své odpovědi zde .
Problém, jako je například fantomové čtení, může ovlivnit výsledek výběru, jako když to děláte vy, ano. Ale výsledek SQL_CALC_FOUND_ROWS se uloží, jakmile dotaz skončí, a ztratí se, jakmile provedete další dotaz ve stejné relaci. To je ta důležitá část. SQL_CALC_FOUND_ROWS je vázáno na relaci . Neexistuje žádný způsob, aby byl výsledek jiného dotazu v jiné relaci uložen ve vaší aktuální relaci. Použití SQL_CALC_FOUND_ROWS nepodléhá podmínkám závodu. Výsledek SELECT dotazu ano, ale ne výsledek FOUND_ROWS(). Nepleťte si to.




  1. Použijte XEvent Profiler k zachycení dotazů na SQL Server

  2. Odložení častých aktualizací v MySQL

  3. PHP - Náhodně změněné porty v aplikaci Azure mySQL

  4. Konfigurace ověřování LDAP a mapování skupin pomocí MariaDB