2009-02-09 5 views
1

저는 파이썬 스크립트를 가지고 2,433,000 개의 행에 대해 초당 많은 업데이트를 수행 할 계획입니다. 현재 파이썬에서 동적 열을 파이썬 dict의 값으로 유지하려고합니다. 그러나 파이썬 독트린을 다른 칼럼의 변화와 동기화되도록 유지하는 것은 점점 더 어려워지고 있습니다.postgresql의 동적 데이터

나는 자동 드라이브를 오버 드라이브에 장착 할 수 있음을 알고 있지만 이것이 업데이트의 양을 따라 잡을 수 있을지는 의문입니다. 각 행에 파이썬 변수를 연결할 수만 있다면 ...

VACUUM 및 diskwrite 오버 헤드로 인해 내 서버가 죽을 까봐 걱정됩니까?

동적 변수를 행/키에 연결하는 방법에 대한 제안 사항이 있으십니까?

들으

답변

3

의 PostgreSQL은 LISTENNOTIFY 명령을 사용하여 비동기 알림을 지원합니다. 애플리케이션 (클라이언트)은 알림 이름 (예 : 'table_updated')을 사용하여 알림을받습니다. 데이터베이스 자체는 수동으로 또는 삽입 또는 수정을 수행하는 코드 (많은 수의 업데이트가있을 때 유용하며 일괄 알림을 허용하는 경우 유용) 또는 행 업데이트 TRIGGER 내부에서 자동으로 알림을 발행 할 수 있습니다.

이러한 알림을 사용하여 데이터 구조를 최신 상태로 유지할 수 있습니다.

또는 (또는 위과 함께 사용하면), 당신은 시간 제한 등을 사용하여 결과를 캐시 할 수는 __getitem__(), has_key(), contains() 방법을 재정 의하여 파이썬 사전을 사용자 정의하고 필요에 따라이 조회를 수행 할 수 있습니다

+0

PostgreSQL 문서에서 "NOTIFY는 하나의 중요한 점에서 유닉스 신호처럼 작동합니다. 즉, 동일한 알림 이름이 여러 번 연속해서 신호를 받으면 수신자는 NOTIFY의 여러 실행에 대해 하나의 알림 이벤트 만 얻을 수 있습니다". 동기화 상태를 유지하려면 대신 __getitem __()을 재정의하십시오. –