Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Điều gì có thể khiến mysql db read trả về dữ liệu cũ

Có vẻ như khách hàng của bạn đang sống trong ảnh chụp nhanh cơ sở dữ liệu của riêng họ, điều này sẽ đúng nếu họ có một giao dịch mở bằng cách sử dụng mức cô lập REPEATABLE-READ. Nói cách khác, không có dữ liệu nào được cam kết sau khi khách hàng đó bắt đầu giao dịch sẽ được hiển thị cho khách hàng đó.

Một cách giải quyết là buộc một giao dịch mới phải bắt đầu. Chỉ cần chạy COMMIT trong phiên khách hàng có vẻ như đang xem dữ liệu cũ. Điều đó sẽ giải quyết mọi giao dịch đang mở và truy vấn tiếp theo sẽ bắt đầu một giao dịch mới.

Một cách khác bạn có thể kiểm tra là sử dụng khóa đọc truy vấn chẳng hạn như SELECT ... FOR UPDATE . Thao tác này sẽ đọc dữ liệu được cam kết gần đây nhất, bất kể mức độ cô lập giao dịch của khách hàng. Có nghĩa là, ngay cả khi khách hàng đã bắt đầu giao dịch của họ bằng REPEATABLE-READ, việc đọc khóa hoạt động như thể họ đã bắt đầu giao dịch của mình với 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. while ($ row =mysql_fetch_array ($ result)) - có bao nhiêu vòng lặp đang được thực hiện?

  2. Gọi đến kết quả hàm thành viên () bằng CodeIgniter

  3. Cách chọn mọi thứ trước / sau một ký tự nhất định trong MySQL - SUBSTRING_INDEX ()

  4. Làm thế nào để biết MySQLnd có phải là trình điều khiển đang hoạt động hay không?

  5. MySQL xóa tất cả các hàng có id lớn hơn số đã cho