Tôi cần duy trì một bảng thống kê cho một dự án, bao gồm một danh sách các mục và cách sử dụng chúng (Hãy nghĩ về một cái gì đó giống như một trang web mà bạn muốn đếm số lần xem trang). Mỗi khi một mục được kích hoạt, tôi cần tăng mức sử dụng của mục cụ thể.
Triển khai đầu tiên của tôi là:
statistics(
id integer NOT NULL,
name character varying(255) NOT NULL,
usage integer NOT NULL DEFAULT 0,
);
UPDATE statistics
SET usage = usage + 1
WHERE name = '<name>';
Mối quan tâm của tôi là về hiệu suất và đồng thời. Quá trình cập nhật sẽ được khởi tạo bởi vài chục (có thể 80-120) thiết bị và có thể xảy ra vài lần mỗi giây, vì vậy câu hỏi của tôi là:
1) phương pháp này sẽ bảo tồn đồng thời? (tức là nếu có nhiều hơn một thiết bị yêu cầu cập nhật "cùng một lúc", thì mọi yêu cầu có được tính không?)
2) bạn có thể đề xuất một cách tốt nhất để đạt được kết quả? Tôi hy vọng sẽ có tải bằng văn bản các bản cập nhật, trong khi các lần đọc sẽ giúp tôi thường xuyên hơn nhiều. Có tồn tại một chức năng cụ thể để tăng giá trị? Tôi đang xem "trình tự" nhưng tôi không chắc đó có phải là cách đúng không ...
Cảm ơn bạn rất nhiều vì lời khuyên