2017-10-20 1 views
2

많은 사용자가 참여하는 큰 데이터를 처리 할 수있는 Postgres 기반 앱을 설계하고 있습니다. 대부분의 읽기가 세 개의 테이블 만 사용하도록 데이터가 모델링되므로 모든 사용자가 동시에 같은 레코드를보고 있습니다.동시 읽기가 Postgres에 어떻게 영향을 줍니까?

읽기 (쓰기가 아님) - 많은 동시 읽기가 느리게 실행 되는가, 아니면 메모리에 한 번만있는 경우 Postgres는 지연이나 리소스 소모없이 모든 동시 사용자에게 동일한보기를 표시합니까?

동일한 레코드의 읽기 횟수가 Postgres를 느리게하거나 메모리에 한 번 더 데이터를 표시하는 데 비용이 들지 않습니까?

덕분에,

알렉스 Glaros

답변

4

동시을 천천히 DB를 읽고, 또는 한 번에 메모리에, 포스트 그레스 많이 지연 또는 자원없이 모든 동시 사용자에게 동일한보기를 표시하는 경우입니다 소비?

동일한 데이터가 반복해서 요청되면 예 (메모리가 충분할 경우 Postgres에 해당 메모리가 제공됨)가 유지됩니다.

는 수가

아무것도 무료로 온다 아래로 동일한 레코드 느린 포스트 그레스의 읽는 점은 동시 트랜잭션이 에서 동일한 데이터를 요청할 때, 그래서 네 오버 헤드가 참여하고 있습니까 정확하게 같은 시간. 메모리의 데이터 블록에 대한 액세스는 잠금 (매우 가볍지 만), 래치 및 세마포를 통해 동기화해야합니다.

전체 데이터가 메모리에있는 시스템에서는 CPU가 제한 요소를 갖습니다. 최근 Postgres 버전은 여러 동시 세션으로 확장 성이 크게 향상되었으므로 최신 버전 (9.6 또는 10.0)을 사용해야합니다.

동일한 데이터 블록을 에서 정확히으로 요청하는 여러 트랜잭션을 말합니다.하지만 동일한 나노초입니다. 트랜잭션 (세션, 연결)이 일반적으로 세 테이블의 다른 부분을 요청하면 매우 많은로드가 걸린 메모리 블록에서만 동기화 문제가 발생합니다.

관련 문제