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

Какво може да накара mysql db read да върне остарели данни

Изглежда, че вашите клиенти живеят в собствена моментна снимка на базата данни, което би било вярно, ако имат отворена транзакция, използвайки нивото на изолация REPEATABLE-READ. С други думи, никакви данни, записани след като клиентът е започнал транзакцията си, няма да бъдат видими за този клиент.

Едно заобиколно решение е принудителното стартиране на нова транзакция. Просто стартирайте COMMIT в клиентската сесия, където изглежда, че преглежда остарели данни. Това ще разреши всяка отворена транзакция и следващата заявка ще започне нова транзакция.

Друг начин, по който можете да тествате, е да използвате заключващо четене заявка като SELECT ... FOR UPDATE . Това ще прочете най-скоро въведените данни, независимо от нивото на изолация на транзакциите на клиента. Тоест, дори ако клиентът е започнал транзакцията си с REPEATABLE-READ, заключващото четене се държи така, сякаш е започнал транзакцията си с READ-COMMITTED.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Синтаксис за входни параметри в MySQL заявка

  2. Границата на рекурсия е превишена при нерекурсивна процедура

  3. Как да конвертирате UTC дата в местна часова зона в MySql Изберете заявка

  4. Docker Compose свържете ECONNREFUSED 172.18.0.4:3306

  5. PHP, MySQL:Получаване на имейл, автоматично търсене в DB и изпращане на имейл въз основа на резултатите