sql >> Databasteknik >  >> RDS >> Mysql

Hur förhindrar man att utvalda found_rows går sönder under tävlingsförhållanden?

Det finns vissa problem när det kommer till transaktioner och olika isoleringsnivåer förhindrar mer eller mindre av dem. Jag har beskrivit detta i mitt svar här .
Ett problem som till exempel fantomläsningen kan påverka resultatet av en markering som om du gör det, ja. Men resultatet av SQL_CALC_FOUND_ROWS lagras så snart frågan är klar och går förlorad så snart du kör en annan fråga i samma session. Det är den viktiga delen. SQL_CALC_FOUND_ROWS är sessionsbunden . Det finns inget sätt att resultatet av en annan fråga i en annan session lagras i din nuvarande session. Användningen av SQL_CALC_FOUND_ROWS är inte föremål för tävlingsförhållanden. Resultatet av SELECT-frågan, ja, men inte resultatet av FOUND_ROWS(). Blanda inte ihop det här.




  1. Välj slumpmässig rad per distinkt fältvärde?

  2. Hur man fyller i saknade datum i PostgreSQL med generation_series

  3. viloläge map java Long till MySQL BIGINT-fel

  4. Returdatum som ddmmååå i SQL Server