2. DBMS이야기/02. MySQL 37

MySQL 5.6 파티션 삭제시 Exchange Partition 기능 활용 방안

MySQL 5.6 파티션 삭제시 Exchange Partition 기능 활용 방안 [출처] 파티션 삭제시 Exchange Partition 기능 활용 방안 (in MySQL 5.6)|작성자 돌고래사육사 로그성 데이터를 파티션 테이블로 보관하는 경우가 많은데, 보관주기가 지난 파티션을 drop 하는 경우에 MySQL 에서는 전체 파티션에 테이블 락이 걸리는 문제가 있다. 물론 파티션의 물리적인 파일과 내부 메타 데이터 갱신 정도만 발생하기에 테이블 락 유지 시간이 길지는 않지만, 서비스 성격에 따라 문제가 되는 경우도 있다. MySQL 5.6 버전부터는 파티션 Exchange 기능이 지원되는데, 이 기능을 사용하면 테이블 락으로 인한 영향을 최소화하면서 파티션 삭제를 할 수 있다.테스트를 위해 하루에 32..

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..

MySQL에서 mysqlslap을 활용하여 쿼리 성능을 측정하는 방법 (4) - 사례 및 결론

사용 사례: 실제 벤치마킹 시나리오와 Live 쿼리 캡처링.지금까지 우리의 예에서, 우리는 원래 직원 데이터베이스에 대해 쿼리를 실행하고있다. 즉, 당신이 원하는하지 않을 확실히 뭔가 DBA가 있습니다. 그리고 그것을위한 좋은 이유가있다. 당신은 당신의 프로덕션 데이터베이스를로드 추가하지 않고 삭제, 업데이트 또는 생산 테이블에 데이터를 삽입 할 수있는 테스트 쿼리를 실행하지 않습니다. 우리는 어떻게 프로덕션 데이터베이스의 백업을 만드는 방법을 보여 그것은 테스트 환경에 복사합니다. 이 예에서는 동일한 서버에,하지만 당신은 이상적으로는 동일한 하드웨어 용량을 별도의 서버에 복사합니다. 더 중요한 것은, 우리는 어떻게 쿼리가 프로덕션 데이터베이스에서 살고 기록하고 테스트 스크립트에 추가하는 방법을 보여 드..

MySQL에서 mysqlslap을 활용하여 쿼리 성능을 측정하는 방법 (3) - 활용사례

이번 글에서는 mysqlslap을 사용한 사례를 소개합니다.사용 사례 : 자동 생성 된 SQL 및 데이터와 벤치마킹우리는 mysqlslap의 자동 생성-SQL 기능을 사용하여 시작합니다. 우리는 자동 생성 된 SQL을 사용하는 경우, mysqlslap는 별도의 임시 데이터베이스를 작성합니다 - 적절라는 mysqlslap을. 이 데이터베이스는 하나의 정수 및 샘플 데이터로 채워 하나의 VARCHAR 타입 컬럼과의 간단한 테이블을해야합니다. 이 데이터베이스 서버의 전체 성능을 확인하는 빠르고 쉬운 방법이 될 수 있습니다. 우리는 자동으로 생성 된 SQL이 한 번 일을 하나의 클라이언트 연결을 테스트하여 시작합니다sudo mysqlslap --user=sysadmin --password --host=local..

MySQL에서 mysqlslap을 활용하여 쿼리 성능을 측정하는 방법 (2) 샘플DB인스톨,mysqlslap활용

다음으로 설명할 내용은 2) Sample Database를 인스톨 하는 방법입니다.다음으로, 우리는 테스트를 위해 샘플 데이터베이스를 설치해야합니다. 이 데이터베이스는 직원이라고하며 MySQL의 웹 사이트에서 무료로 액세스 할 수 있습니다. 데이터베이스는 또한 런치 패드에서 다운로드 할 수 있습니다.직원 데이터베이스는 패트릭 대원과 주세페 Maxia에 의해 개발되었다. 원래 데이터는 지멘스 기업 연구에 Fusheng 왕과 카를로 Zaniolo에 의해 만들어졌습니다. 이 큰 데이터 세트를 제공하기 때문에 우리는 직원 데이터베이스를 선택하고있다.데이터베이스 구조는 간단하다 : 그것은 단지 여섯 테이블을 가지고있다; 그러나 포함 된 데이터에 둘 이상의 300 직원 기록을 (급여 테이블 자체가 거의 3 만 행이..

MySQL에서 mysqlslap을 활용하여 쿼리 성능을 측정하는 방법 (1) 테스트환경 셋팅

MySQL은 버전 5.1.4부터 주변에있어 쉽고 간단한 진단 도구로 mysqlslap와 함께 제공됩니다. 그것은 DBA와 개발자가 데이터베이스 서버로드 테스트 할 수 있는 벤치마킹 도구입니다. mysqlslap 동시에 데이터베이스 서버를 타격하는 다수의 클라이언트 연결을 에뮬레이트 할 수있습니다. 부하 테스트 매개 변수를 완벽하게 구성 할 수있는 다른 테스트 실행의 결과는 미세 조정 데이터베이스 설계 나 하드웨어 자원을 사용할 수 있습니다. 이 튜토리얼에서 우리는 몇 가지 기본적인 쿼리와 MySQL 데이터베이스로드 테스트 및 벤치마킹이 그 쿼리 우리에게 미세 조정을 할 수있는 방법을 볼 수 mysqlslap를 사용하는 방법을 배우게됩니다. 몇 가지 기본적인 시위 후, 우리는, 우리가 테스트를 위해 기존 ..

MySQL에서 Replication을 사용할 때 Backup 하는 방법

이는 상기 기술과 백업 데이터 MySQL의 복제를 사용하는 것이 가능하다. 복제는 다른 (마스터 마스터)에 서버 중 하나에 대한 변경 사항을 다른 서버 (마스터 - 슬레이브)에 하나의 서버에서 데이터를 미러링 또는 미러링의 과정이다. 복제 데이터 미러링 수 있지만, 그것은 당신이 특정 시점을 저장하려고 할 때 겪고있다. 그것은 항상 동적 시스템의 변경을 복제되기 때문이다. 이 문제를 방지하려면 : 1) 일시적으로 복제 하지 않음2) 일시적으로 백업 시스템은 읽기 전용 확인 Disabling Replication Temporarily 당신은 실행하여 일시적으로 슬레이브 복제를 사용하지 않도록 설정할 수 있습니다 :mysqladmin -u user_name -p stop-slave완전히, 말하자면, 복제를 ..

Ubuntu VPS에 MySQL 백업받는 방법

What is MySQL? MySQL을 액세스하고 데이터를 조작하기 위해 SQL 질의의 언어를 사용하는 인기있는 데이터베이스 관리 솔루션이다. 그것은 쉽게 웹 사이트 또는 애플리케이션으로부터 데이터를 관리하는데 사용될 수있다. 백업은 어떤 종류의 데이터와 중요하며, 데이터베이스에 대해 얘기 할 때 특히 적합하다. MySQL은 우리가이 문서에서 설명하는 몇 가지 다른 방법으로 백업 할 수 있습니다. 이 튜토리얼을 위해, 우리는 설치 MySQL의 5.5 우분투 12.04 VPS를 사용하는 것입니다. 대부분의 현대적인 분포와 MySQL의 최신 버전은 비슷한 방식으로 작동한다. How to Backup a MySQL Database with mysqldumpMySQL과 백업하는 가장 일반적인 방법 중 하나는 "..

Downtime 없이 MySQL Replication을 설정하기

MySQL 데이터베이스를위한 마스터 - 슬레이브 복제의 이점에 상세히 설명 할 필요가 없을 만큼, 그것은 단순히 좋은 생각입니다;앞으로 이야기 할 내용은 데이터베이스의 성능에 영향을주지 않고 슬레이브에서 백업을 실행할 수있는 기능입니다. 마스터 - 슬레이브 복제에 대부분의 튜토리얼은 초기 설정시 일관된 사본을 달성하기 위해 읽기 잠금을 사용합니다.우리의 사용자가 밤의 모든 시간에 카드와 선물의 수천을 보내고, 다운 타임없이 마이그레이션을 수행 할 수있는 방법을 찾고 싶었습니다. 먼저, [mysqld를] 섹션에 다음 행을 추가하여 마스터의 /etc/mysql/my.cnf를 구성해야합니다 : server-id=1 binlog-format = mixed log-bin=mysql-bin datadir=/var/..