PostgreSQL을 사용하여 제품을 개발하였고, 지금도 PostgreSQL을 사용하여 제품을 개발 중입니다.
성능을 좀 더 향상 할 수 있는 방법을 알고 싶습니다.
기존에 개발한 제품은 일당 MAX 2000건의 자료가 실시간으로 발생하며, 그 자료에서 트리거를 걸어놓은 테이블도 10개정도 됩니다.
2000건의 등록자료에 대한 Insert, Update, Delete의 연산이 많이 발생합니다.(사용자가 임의로 Delete, Update를 많이 수행할 수 있습니다.)
따라서, Tablespace영역이 많이 늘어나 SQL 연산을 수행할 시 시간이 최대 무한루프같은 경우가 발생하였습니다.
물론 트리거부분은 최적화 하여 트리거 제거 후와 트리거 삽입 후의 시간차이는 거의 1 ~ 2초정도 발생할 뿐이었습니다.
이러한 문제를 임시적으로 Cron으로 vaccumdb를 걸어서 매일 수행함으로써 해결은 했습니다...
지금 현재 개발중인 제품은 실시간으로 많게는 10만건의 데이터를 처리하고, 관련 테이블 또한 20개 정도 됩니다.
이러할 경우, 하루 한번 수행하는 vaccumdb 작업만으로는 충분하지 않을거 같습니다...
따라서, PostgreSQL의 성능을 최상으로 끌어 올릴수 있는
-- PostgreSQL 설정관련 정보나
-- 데이터베이스 설계시 고려할 사항
들을 충고해주십시요...
참고로 시스템은 리눅스 기반입니다.
|