MySQL 93

SQL Server MySQL PostgreSQL 비교

SQL Server MySQL PostgreSQL 비교 · Version : SQL Server MySQL PostgreSQL RDBMS로 많이 사용하는 SQL Server와 MySQL 그리고 PostgreSQL의 특징 및 차이점에 대해서 살펴본다. 각 데이터베이스 기능이 너무나 많기 때문에 모두 다루지는 못하며 대표적인 내용 몇가지만 다루도록 한다. · MySQL과 PostgreSQL, SQL Server 데이터베이스 모두 ACID를 완벽하게 지원하며 많은 양의 데이터와 높은 수준의 쿼리 동시성을 처리할 수 있다. · PostgreSQL은 기능이 풍부하고 확장성이 뛰어나다 · MySQL은 많은 곳에서 사용하고 있으며 웹 애플리케이션과 전자상거래 프로젝트에 적합하며, PostgreSQL에 비해 블로그, ..

ETL data error with MariaDB ODBC 3.0 (from Aurora to MS SQL)

ETL data error with MariaDB ODBC 3.0 (from Aurora to MS SQL) · Version : SQL Server 2016, AWS Aurora, Maria ODBC 3.0 최근 다양한 DB환경이 구성되면서 DW(Data Warehouse)를 구축할 때, ETL 작업 또한 이기종 DB (데이터베이스가 다른 종류간의 ETL) 작업이 증가하는 추세이다. 필자는 현재 다양한 데이터베이스를 구축 운영하고 있으며 MySQL 에서 MS SQL 로 ETL과정중 예기치 못한 데이터 오류가 많이 발생 하였다. AWS에 있는 Aurora (MySQL 5.6) 데이터 원본에서MS SQL Server로 ETL하는 과정에서 Decimal값이 정상적으로 표시되지 않고 /100 값으로 변환되어 ..

MySQL/MariaDB InnoDB(Storage) row lock 모니터링

MySQL/MariaDB InnoDB(Storage) row lock 모니터링 · Version : MySQL 5.7, Docker MySQL/MariaDB에서 사용하는 InnoDB 스토리지 엔진에서 row lock 정보는 스토리지 엔진 테이블에서 발생한 행 단위의 lock 발생 횟수와 lock 대기 시간등을 나타낸다. InnoDB row lock 모니터링은 아래 스크립트를 실행하여 확인 할 수 있다. Show status where variable_name like ‘Innodb_row_lock%’; Variable Name Comments Innodb_row_lock_current_waits 현재 row 락을 획득하기 위해 대기중인 수 Innodb_row_lock_time row lock 획득에 소비..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB InnoDB(Storage) buffer pool 모니터링

MySQL/MariaDB InnoDB(Storage) buffer pool 모니터링 · Version : MySQL 5.7, Docker MySQL/MariaDB에서는 다양한 스토리지 엔진을 지원하며 각 스토리지마다 특성 또한 다르다. 각 스토리지 엔진에 대한 특성은 아래 링크를 참고 한다. · Comparison of MySQL database engines : https://en.wikipedia.org/wiki/Comparison_of_MySQL_database_engines 이번 포스트에서는 일반적으로 OLTP 서비스에 많이 사용하는 InnoDB 스토리지 엔진에서 buffer pool(버퍼풀)과 관련한 모니터링 방법에 대해서 알아본다. 아래 스크립트를 실행 하면 InnoDB의 buffer pool..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB Threads 모니터링

MySQL/MariaDB Threads 모니터링 · Version : MySQL 5.7, Docker MySQL/MariaDB에서 Threads 모니터링하는 방법에 대해서 알아본다. MySQL 서버는 기본적으로 하나의 클라이언트가 MySQL 서버에 접속할 떄마다 해당 클라이언트에 종속적인 스레드를 생성하고 해당 커넥션에서의 스레드 역할(쿼리 작업)이 끝나면 스레드를 제거한다. 클라이언트가 접속할 때마다 스레드를 할당하고 제거하는 작업은 MySQL 서버 시스템 입장에서 보면 많은 리소스 낭비 및 성능 저하를 발생시키기 때문에 모니터링은 매우 중요한다. 아래 스크립트를 실행하면 스레드와 관련된 지표를 확인할 수 있다. Show status where variable_name like ‘threads%’; V..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB Temp table and Temp file 모니터링

MySQL/MariaDB Temp table and Temp file 모니터링 · Version : MySQL 5.7, Docker MySQL/MariaDB에서 Temp table 및 Temp file 모니터링하는 방법에 대해서 알아본다. 데이터베이스 서브 시스템에서 상대적으로 느린 부분이 디스크이다. 임시 테이블 및 임시 파일이 디스크에 기록될때 데이터베이스의 성능 저하가 발생할 수 있기기 때문에 지속적인 모니터링을 통해서 디스크에 생성되는 임시 테이블 및 파일이 높지 않은지 살펴보아야 한다. 아래 스크립트는 temp table 및 temp file의 지표를 나타낸다. Show status where variable_name like ‘%tmp %’ Variable Name Commets Created..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB Table lock 모니터링

MySQL/MariaDB Table lock 모니터링 · Version : MySQL 5.7, Docker MySQL/MariaDB에서 Table lock 모니터링하는 방법에 대해서 알아본다. Table lock(테이블락) 모니터링은 테이블에 락이 발생한 횟수를 나탄내다. 아래 명령어를 실행하면 테이블락과 관련된 성능 지표를 보여준다. show status where variable_name like ‘table_locks%’ Variable Name Commets Table_locks_immediate 즉식 획득한 테이블 락 횟수 Table_locks_waited 테이블 락을 즉시 획득하지 못하고 대기한 횟수 MySQL에서 테이블락 관련해서 모니터링 할때 주의해야할 부분이 있다. MySQL의 경우 다양..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB Sort 모니터링

MySQL/MariaDB Sort 모니터링 · Version : MySQL 5.7, Docker MySQL 뿐만 아니라 다른 제품의 RDB에서도 정렬(Sort)이 발생할 때 시스템 리소스가 추가적으로 발생하기 때문에 모니터링이 필요하다. Select 모니터링시 테이블 스캔이 발생하는지 또는 인덱스 를 잘 사용하는지에 대한 부분에 대해서 살펴 보았다면 이번에는 정렬과정에서 발생하는 비용에 대해서 살펴본다. · MySQL/MariaDB Select 모니터링 : http://sqlmvp.kr/221260775725 아래 스크립트를 실행 하면 Sort와 관련된 지표를 확인할 수 있다. show status where variable_name like ‘sort%’ 각 지표가 의미하는 내용은 아래 표를 참고 한다..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB Select 모니터링

MySQL/MariaDB Select 모니터링 · Version : MySQL 5.7, Docker MySQL 뿐만 아니라 대부분의 OLTP 성 데이터베이스에서는 SELECT의 성능이 매우 중요하다. 일반적으로 관계형 데이터베이스에서는 JOIN을 많이 사용하기 때문에 SELECT에 따른 의도하지 않은 성능 문제나 잠금 문제가 발생할 수 있기 때문에 모니터링에 우선순위를 높여야 하며 최우선으로 튜닝을 해야 하는 포인트 이기도 하다. MySQL에서 SELECT에 대한 모니터링은 아래 스크립트를 실행하여 확인할 수 있다. show status where variable_name like ‘select%’ 각 항목에 대해서 어떤 의미를 가지는지 살펴보자. Variable Name Comment Select_fu..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB Replication 모니터링

MySQL/MariaDB Replication 모니터링 · Version : MySQL 5.7, Docker MySQL Replication은 기본적으로 비동기 방식의 복제 매커니즘이다. 그래서 Master DB의 Slave DB 간에 동기화 지연이 발생하면 데이터에 데한 차이가 발생하고 서비스에 영향이 있을 수도 있다. · MySQL 복제 구축 : http://sqlmvp.kr/220383304252 · MySQL Replication Architecture : https://www.slideshare.net/SvenSandberg/oracle-openworld-2013-hol9737-mysqlreplicationbestpractices 슬레이브DB에 대한 복제 상태를 확인하는데 가장 많이 사용되는 명..

MySQL, MariaDB 2019.03.24