Dead Lock khi insert đồng thời.
Chào bạn, do column name là unique bạn nhé, cơ chế gap lock và next-key của mysql là khi bạn thêm 1 dữ liệu vào column name 1 cách đồng thời, nếu database đang có dữ liệu là A và E, bạn insert đồng thời là B và D hoặc C và D (nằm khoảng giữa A và E) thì sẽ xảy ra deadlock Nguyên nhân là do cột name đã được indexed vì thế bên trong db sẽ có index, tại đó name được sắp xếp và bạn muốn chèn vào giữa thì database phải check xem liệu có bị trùng data không, nó sẽ lock khoảng giữa của những data có sẵn, nếu bạn insert vào data nằm giữa A và E ví dụ B và D thì query insert B sẽ nắm khoảng từ A đến B, còn query insert D sẽ nắm khoảng từ D đến E, vùng tranh chấp của 2 query là B đến D, khi query B lock đến chỗ D đang giữ và D lock đến chỗ B đang giữ thì sẽ xảy ra deadlock. Bạn có thể test nếu insert vào database là B và F (cả 2 data thêm chỉ cần 1 cái không nằm trong khoảng giữa) sẽ ko bị deadlock (tất nhiên mình đã thử :>)
Tổ chức
Chưa có tổ chức nào.