2017-04-18 1 views
0

데이터베이스 디자인에 접근하는 가장 좋은 방법에 대해 조언을 듣고 있습니다. 우리는 현재 컴퓨터에 대해 모든 이벤트를 기록하는 데이터베이스를 가지고 있습니다.MySQL에서 머신에 이벤트 발생 횟수를 기록하는 방법

열은 uid, machine_id, event_id입니다. 모든 이벤트가 데이터베이스에 입력되므로 엄청난 양의 레코드가 있습니다! 하루 중 하나의 machine_id에 대해 여러 이벤트 (이벤트가 여러 번 발생하거나 전혀 발생하지 않을 수 있음)를 입력 할 수 있습니다.

내가의 데이터베이스 설정을 시도했다 :, UID, machine_id, EVENT_ID을 안타 그리고 machine_id을 설정하고 고유 인덱스로 EVENT_ID 한 다음, 오히려 그 삽입 속으로 교체하고 -하지만 난 다음을 얻을 히트 = 히트 + 1을 할 수 없기 때문에 히트를 업데이트 할 수 없다는 문제가있다.

내가하려는 것은 내가 필요로하는 데이터를 보유하는 가장 스트리밍 된 길을 찾는 것이다. 나는 기계 당 얼마나 많은 event_id가 발생하는지 계산할 수있다. 모든 제안이나 도움은 대단히 감사하겠습니다. 미리 감사드립니다. ON DUPLICATE KEY UPDATE

답변

1

사용 INSERT :

너무 간단하고 정확하게 내가 일을하려고했다입니다
INSERT INTO events (machine_id, event_id, hits) 
VALUES (:machine_id, :event_id, 1) 
ON DUPLICATE KEY UPDATE hits = hits + 1 
+0

, 정말 고마워요. –

관련 문제