10/10/2018, 10:39

Lock table trong mysql

Ai đã từng dùng LOCK TABLE trong mysql help cái.

Nhu cầu tôi có 1 table khi 1 user nào thao tác trên table này thì các user khác không được can thiệp vào (kể cả đọc dữ liệu).

Tôi đã dùng thử LOCK TABLE trong mysql mà nó không giải quyết được mà còn làm rối vấn đề lên.

Ai từng sử lý cái này vào tư vấn cái.
langtusitinh225 viết 12:43 ngày 10/10/2018
Nghĩa là trong cùng 1 lúc mỗi table chỉ được 1 user thao tác phải không anh
thuyduongcd viết 12:43 ngày 10/10/2018
Nếu lock cả đọc table thì lấy DB đâu cho chương trình hoạt động

[=========> Bổ sung bài viết <=========]

Nếu lock cả đọc table thì lấy DB đâu cho chương trình hoạt động
honnhienh viết 12:48 ngày 10/10/2018
Được gửi bởi thuyduongcd
Nếu lock cả đọc table thì lấy DB đâu cho chương trình hoạt động

[=========> Bổ sung bài viết <=========]

Nếu lock cả đọc table thì lấy DB đâu cho chương trình hoạt động
hình như bác chưa hiểu ý bác kia. có rất nhiều lúc để cho dữ liệu validate thì cần làm việc này. cái này hình như mấy bác bên database viết vụ này. mấy pro lập trình trắc khó can thiệp. bác nào bên database cho ý kiến vụ này coi rất tò mò ?
thuyduongcd viết 12:39 ngày 10/10/2018
Thông thường thì chỉ nên lock với tham số READ vì bất cứ lúc nào chương trình cũng có thể cần truy cập DB.
Chỉ lock với WRITE khi nào cần bảo trì thôi.
s.code viết 12:53 ngày 10/10/2018
Hơi lạc đề rồi đó.

Vấn đề ở đây là chỉ lock 1 table đó thôi. Tôi đọc document thấy nó nói là khi table bị lock thì các user khác đứng chờ. Vấn đề này tôi đã được học trên sql Server nhưng lâu quá rồi.

Tôi lock có 1 table đó mà ảnh hưởng hết đến những truy vấn khác. Vậy tôi mới nói nó làm rối tình hình hơn.

Nhu cầu thực của tôi là có 1 table chứa data. Mỗi mỗi lần truy xuất vào lấy dữ liệu để sử lý thì sẽ cắm 1 cái cờ cho row đó đang trong trạng thái lock. Khi nhiều tiến trình cùng sử lý 1 lúc, cùng lấy ra 1 mẩu tin chưa được sử lý ==> nhiều khi 2 thằng cùng lấy 1 mẩu tin => duplicate.
honnhienh viết 12:50 ngày 10/10/2018
không rành về vụ này lắm. nhưng nhỏ bạn làn về database gửi cho cái này . bác đọc coi http://dev.mysql.com/doc/refman/5.1/en/commit.html
Bài liên quan
0