많은 DB 쓰기가 필요한 Erlang 응용 프로그램을 개발 중입니다. 내 스키마에는 기본 키 외에도 고유 한 제약 조건이 적용된 다른 특성이 있습니다.Mnesia의 고유 제한
ID, unique_constraint_field 및 일부 다른 입력란이 있습니다. 고유 ID에 해당하는 DB의 행을 업데이트해야합니다. 다른 행에 이미 업데이트 할 unique_constraint_field 값이 있어야합니다.
많은 수의 업데이트로 인해 (각 업데이트는 1 행에만 영향을 미침) 수행해야합니다 (대기 시간이 너무 짧음). 대신 기본 키와 해당 속성의 고유 제한 조건을 사용하여 복제를 잡습니다. 하위 쿼리를 사용하는 업데이트 문의 이를 통해 단일 쿼리 (95 %의 시간에 발생)에서 업데이트를 수행 할 수 있으며 나머지 5 %에서는 기본 키 또는 고유 한 특성 위반에 대해 필요한 조치를 취하기 위해 예외를 catch 할 수 있습니다.
현재 ODBC mysql 드라이버를 사용하고 있습니다. 그러나 드라이버가 모든 오류에 대한 매우 일반적인 오류 메시지를 반환합니다. 어떤 오류가 중요한 위반이라고 가정 할 때 현재 프로토 타입이 잘 작동하고 있지만이 모델에는 분명히 결함이 있습니다. 나는 erlang에서 mysql에 연결할 다른 괜찮은 드라이버/방법을 찾을 수 없다.
Erlang과 Mnesia가 완벽하게 융합하여 Mnesia (내 속도 요구 사항에 대해 메모리 전용 모드)로 전환 할 생각입니다. 그러나 Mnesia에는 단일 쿼리에서 DB 업데이트를 수행하는 데 사용할 수있는 고유 한 키 제약 조건이 없다는 것을 알았습니다.
얼랭 (Erlang) 내에서이 요구 사항을 가장 잘 구현하는 방법에 대한 제안이 필요합니다. Mnesia에서 조건부 업데이트를 수행 할 방법이 있습니까? 아니면 내가보아야 할 다른 고속 DB 대안이 있습니까? 어떤 도움이나 통찰력이라도 대단히 감사합니다.
감사합니다. 재미있을 것 같습니다. 한번보세요. – jeffreyveon