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

Tại sao truy vấn MySQL này bị treo?

Bởi vì ai đó đã khóa một trong các bảng hoặc một hàng duy nhất. Điều này có thể xảy ra, ví dụ:nếu bạn đã tắt tính năng tự động cam kết (để bạn có thể khôi phục các sửa đổi của mình) trong một phiên và quên cam kết ở đó.

Tài liệu này có thể hữu ích.

[EDIT] Sau khi bạn đăng định nghĩa bảng, bạn có thể thấy rằng kiểu của hai cột nối là khác nhau. Bây giờ câu hỏi là:Loại nào sẽ được truyền lên / xuống khi bạn chạy truy vấn? Trong trường hợp của bạn, tốt hơn là nên truyền loại PAYMENT_TRANSACTION_LOG_ID thành varchar , đặc biệt nếu bạn có chỉ mục trên TRANSACTION_ID (mà bạn nên tạo cho truy vấn này).

Bằng cách đó, một vài hàng (hoặc thậm chí một hàng duy nhất) từ bảng tbl_order_head sẽ được chọn và sau đó, tra cứu nhanh sẽ xảy ra trong bảng tbl_orders_log . Nếu không có điều này, cơ sở dữ liệu sẽ tải tất cả các bản ghi từ bảng nhật ký và kiểm tra từng bản ghi xem có khớp với các tiêu đề thứ tự tìm thấy hay không (cộng với truyền mọi ID thành loại trong tiêu đề, v.v.).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thay thế thành có một mệnh đề where?

  2. ngoại lệ đường ống bị hỏng với MySql trong ứng dụng Grails

  3. Tính tổng số đang chạy trong MySQL

  4. CAST thành DECIMAL trong MySQL

  5. Làm thế nào để chèn ký tự Trung Quốc trong bảng mysql?