2. DBMS이야기 139

MySQL 5.6 Parallel Replication (slave_parallel_workers)

MySQL 5.6 Parallel Replication (slave_parallel_workers) [출처] MySQL 5.6 Parallel Replication (slave_parallel_workers)|작성자 돌고래사육사 MySQL Replication 구조는 Master에서 아무리 많은 쿼리를 처리하더라도 Slave가 Master의 처리량을 따라갈 수 없는 근본적인 문제를 가지고 있다.이는 Master에서는 다량의 세션에서 동시에 쿼리를 수행하지만 Slave는 항상 Single Thread로 복제를 처리하기 때문인데, MySQL 5.6 버전에서는 이런 부분들을 조금 완화할 수 있는 parallel slave 기능이 도입되었다. MySQL 5.6의 parallel slave는 database 단위..

MySQL filesort 알고리즘

MySQL filesort 알고리즘 ORDER BY/GROUP BY 처리에 인덱스를 사용하지 못하는 경우, MySQL은 Filesort 알고리즘을 통해 데이터를 정렬한다. Filesort 알고리즘을 사용하게 되면 쿼리 실행플랜 Extra 필드에 Using filesort 구문이 나오게 되며, 이런 경우 대체로 쿼리 처리 비용이 증가하게 된다. Filesort 동작 방식과 Filesort와 관련된 Variable, Status 항목을 정리해 보면 아래와 같다. (1) 데이터 Block에 대한 Scan 및 WHERE Filter 처리후 조건에 맞는 row를 Sort Buffer에 저장 정렬 조건 컬럼 값과 데이터 포지션 정보를 Buffer에 저장하며, Clustered Index 구조를 사용하는 InnoDB..

훨씬 간편해진 Postgres 백업과 복구

훨씬 간편해진 Postgres 백업과 복구 (Postgres Backup and Recovery Just Got a Whole Lot Easier) 2014년 10월 20일, Jason Davis (October 20th, 2014 by Jason Davis) Postgres 는 최근 몇 년간 새로운 툴을 발전시켜왔다. 다행스럽게도, 만약 이 글을 읽는 당신이 Postgres 로 업무를 하고 있는 DBA나 시스템 관리자라면 당신의 업무환경은 훨씬 간편해질 것이다. EnterpriseDB (EDB) 는 최근 몇 주간 일본의 K.K Ashisuto 와 같은 고객들과 파트너사와 작업하며 우리의 새로운 EDB 백업과 복구 툴 (BART) 에 대해 많은 비용을 써왔고, 우리가 이번 주에 백업복구 툴의 첫번째 버전..

PostgreSQL PPAS Streaming Replication

PostgreSQL Streaming Replication 설명 : 스트리밍 복제 (Streaming Replication)은 PostgreSQL 9.0 이상에서 사용 가능한 복제 기능. Insert/Update/Delete, Create/Drop 가능한 1 개의 Master DB에 SELECT만 할 수 있는 여러 Standby DB에 복제하는 것 Standby DB의 변경 결과가 반영되기까지 약간의 지연이 있지만 비교적 지연은 적게, 마스터 DB에 영향 작은 복제 방식. 목적 : 1. 많은 SELECT Query의 Server 간 분산 2. Master DB 이상시 신속한 Fail over 3. Master DB의 Disk 장애에 대비한 실시간 Backup 9.0 에 비해 강화된 9.1의 기능 1. 동..

PostgreSQL PPAS 특장점 소개

PPAS 특장점 DynaTune PPAS에 대해 낯설거나 익숙하지 않은 사용자들을 위해서 Configuration parameter 값을 DB에 맞게 자동으로 조절해 주는 기능 입니다. 사용자가 두 가지의 설정 값만 수정을 하면, PPAS가 그 것을 토대로 하여 알고리즘을 생성해 Postgres의 parameter를 설정 해 줍니다 Query Optimizer Hints SQL Optimizer가 선택한 실행계획에 응용프로그램 개발자가 영향력을 행사할 수 있도록 허용합니다. PostgreSQL이 실행계획을 세웠을 때는 특정 쿼리가 맨 처음 실행되었던 시기라서 차후에 실행되는 경우의 대부분은 최적이 아닐 수 있습니다. 따라서, 빈번하게 작업이 발생하여 테이블 크기가 커질 경우에 Query Optimizer..

[PostgreSQL ADMIN] 정기적인 Vacuum 작업2

1.4. 실자료 지도 갱신 vacuum 작업은 실자료 지도를 갱신하는 작업을 한다. 실자료 지도(visibility map, vm)란 현재 작업 중인 트랜잭션들(또는 그 자료들이 변경 되기 전까지 이용할 미래의 모든 트랜잭션들)이 실제로 사용할 자료들에 대한 각 테이블별 지도다. 이 작업은 두가지 목적이 있다. 하나는 vacuum 작업은 이미 지도 정리 작업이 끝난 것에 대해서는 더 이상 그 작업을 하지 않는다는 것이다. 다른 하나는, 이 지도 정보는 인덱스 전용 쿼리들 - 더 이상 실제 테이블 자료를 검사 하지 않는 쿼리들 - 에 대해서 빠른 응답을 제공하는데 사용된다. PostgreSQL의 인덱스에는 실자료들에 대해서만 따로 모아서 그 정보를 제공하지 않는다. 즉, 어떤 자료를 해당 세션에게 보여 주..

[PostgreSQL ADMIN] 정기적인 Vacuum 작업

1. 정기적인 Vacuum 작업 PostgreSQL 데이터베이스에서는 vacuum (배큠이라고 읽는다) 이라는 주기적인 관리 작업이 필요하다. (영어권에서는 vacuuming 단어는 '청소기 돌리기'라는 뜻으로 이미 일상 용어로 사용되고 있고, 이것을 데이터베이스 용어로 사용하였다. 이 글에서는 그냥 vacuum을 그대로 사용한다. - 옮긴이) 이 작업은 대부분의 서버 환경에서는 autovacuum 데몬이 담당해서 자동으로 처리 되기 때문에, 특별히 신경 쓸 필요는 없다.autovacuum 관련 환경 설정값을 바꾸어서 그 데몬의 동작 상태를 조절 할 수 있다. 또한 몇몇 데이터베이스 관리자는 VACUUM 명령을 직접 실행하는 것이 데이터베이스를 효율적으로 사용할 수 있다고 판단해서, cron 이나, 작업..

0. NoSQL 이란

안녕하세요~!오늘은 그동안의 관계형DB (RDBMS)에서 벗어난 NoSQL에 대해 알아보겠습니다.NoSQL이 무엇일까요?NoSQL이 다른 데이터베이스 다양한 기술을 포함하며 사용자, 개체 및 제품,이 데이터가 액세스되는 빈도 및 처리 성능의 요구에 대해 축적 된 데이터 양의 증가에 응답하여 개발되었습니다. 관계형 데이터베이스는, 현대적인 응용 프로그램에 직면 규모와 민첩성 도전에 대처하기 위해 설계되지 않았으며 다른 한편으로는, 오늘날 저렴한 스토리지의 장점과 처리 능력을 위해 만들어지지 않았습니다.NoSQL의 데이터베이스 유형문서 데이터베이스는 문서로 알려진 복잡한 데이터 구조와 각 키 쌍. 문서는 다양한 키 - 값 쌍, 또는 키 배열 쌍, 또는 중첩 된 문서를 포함 할 수 있습니다.그래프 저장 - 소..