분류 전체보기
-
앞서 Between을 IN-List로 바꾸게 되면 성능이 향상되는 경우가 있는 것을 확인해보았다. 이번에는 BETWEEN 조건을 IN-List 조건으로 변환하면 도움이 되는 상황에서 조건절을 바꾸지 않고도 같은 효과를 낼 수 있는 Index Skip Scan을 활용해 볼 것이다. Between을 IN-List로 전환 2021.10.09 - [자격증 준비~] - [ 친절한 SQL] Between을 IN-List로 전환 이번엔 월별고객별 판매 집계 테이블을 생성하고 직접 테스트를 통해 확인해 보자. ■ TEST Data 생성 - 2018년도 1 ~ 12월까지 월별로 10만 개의 판매 데이터가 입력되도록 했다. 판매 구분 값 별로는 'A' 10만 개 / 'B' 110만 개다. SQL> create table ..
[친절한 SQL] Between vs IN-List vs Index Skip Scan앞서 Between을 IN-List로 바꾸게 되면 성능이 향상되는 경우가 있는 것을 확인해보았다. 이번에는 BETWEEN 조건을 IN-List 조건으로 변환하면 도움이 되는 상황에서 조건절을 바꾸지 않고도 같은 효과를 낼 수 있는 Index Skip Scan을 활용해 볼 것이다. Between을 IN-List로 전환 2021.10.09 - [자격증 준비~] - [ 친절한 SQL] Between을 IN-List로 전환 이번엔 월별고객별 판매 집계 테이블을 생성하고 직접 테스트를 통해 확인해 보자. ■ TEST Data 생성 - 2018년도 1 ~ 12월까지 월별로 10만 개의 판매 데이터가 입력되도록 했다. 판매 구분 값 별로는 'A' 10만 개 / 'B' 110만 개다. SQL> create table ..
2021.10.10 -
Between 조건절은 IN 조건절로 바꿔주면 큰 효과를 얻는 경우들이있다. ■ 예시 1) 기존 SQL select 해당층, 펑당가, 입력일, 해당동, 매물구분, 연사용일수, 중개업소코드 from 매물아파트매매 where 아파트시세코드 A01011350900056' and 평형 = '59' and 평형타입 = 'A' and 인터넷매물 between '1' and '3' order by 입 력 일 desc 2) IN-List 변환 SQL select 해당층, 평당가, 입력일, 해당동, 매물구분, 연사용일수, 중개업소코드 from 매물아파트매매 where 인터넷매물 in ( '1 ' , '2' , '3 ') and 아파트시세코드 A01011350900056 ' and 평형 = '59' and 평형타입 = '..
[ 친절한 SQL] Between을 IN-List로 전환Between 조건절은 IN 조건절로 바꿔주면 큰 효과를 얻는 경우들이있다. ■ 예시 1) 기존 SQL select 해당층, 펑당가, 입력일, 해당동, 매물구분, 연사용일수, 중개업소코드 from 매물아파트매매 where 아파트시세코드 A01011350900056' and 평형 = '59' and 평형타입 = 'A' and 인터넷매물 between '1' and '3' order by 입 력 일 desc 2) IN-List 변환 SQL select 해당층, 평당가, 입력일, 해당동, 매물구분, 연사용일수, 중개업소코드 from 매물아파트매매 where 인터넷매물 in ( '1 ' , '2' , '3 ') and 아파트시세코드 A01011350900056 ' and 평형 = '59' and 평형타입 = '..
2021.10.09 -
이번에 MariaDB Galera를 사용하고 있는 고객사에서 Memory 관련 문의가 들어오게 되면서 Memory부분을 공부해보게 되었다. ■ MariaDB Memory 종류 - MariaDB Memory는 두가지로 분류가된다. 모든 세션이 공유하고 사용하는 Global Memory 영역과 각각의 세션들별로 사용되는 Session Memory영역이 있다. ■ Global Memory 영역 DB가 최초 기동되었을 때에는 메모리를 최소한만 사용하다가 설정된 값 까지 증가하며 증가한 이후에는 "메모리를 반환하지 않고" 설정 된 값 이내에서 계속 사용됩니다. (오라클의 경우 DB기동시 설정된 값 만큼 메모리를 할당 받고 올라가는 반면 Mariadb 는 기동시 설정된 메모리 값만큼 할당 받는것이 아닌 설정된 값 ..
[MariaDB] MariaDB Memroy 튜닝가이드이번에 MariaDB Galera를 사용하고 있는 고객사에서 Memory 관련 문의가 들어오게 되면서 Memory부분을 공부해보게 되었다. ■ MariaDB Memory 종류 - MariaDB Memory는 두가지로 분류가된다. 모든 세션이 공유하고 사용하는 Global Memory 영역과 각각의 세션들별로 사용되는 Session Memory영역이 있다. ■ Global Memory 영역 DB가 최초 기동되었을 때에는 메모리를 최소한만 사용하다가 설정된 값 까지 증가하며 증가한 이후에는 "메모리를 반환하지 않고" 설정 된 값 이내에서 계속 사용됩니다. (오라클의 경우 DB기동시 설정된 값 만큼 메모리를 할당 받고 올라가는 반면 Mariadb 는 기동시 설정된 메모리 값만큼 할당 받는것이 아닌 설정된 값 ..
2021.10.08 -
Maria & Mysql 모두 Thread 방식의 아키텍처로 설계되어있다. Client가 접속하게되면 Thread를 할당해주고 접속이 종료되면 할당했던 Thread를 회수하게 됩니다. 클라이언트가 접속할 때마다 스레드를 할당하고 제거하는 작업은 MySQL 서버 시스템 입장에서 보면 많은 리소스 낭비 및 성능 저하를 발생시키기 때문에 모니터링은 매우 중요한다. 오늘은 접속 스레드에 대한 모니터링과 튜닝 방법에대해 포스팅하도록 하겠습니다. ■ Status MariaDB [(none)]> show global status like '%threads_%'; - Threads_cached 스레드 캐시에 있는 스레드 수 - Threads_connected 현재 오픈된 스레드 수 - Threads_created 연결..
[Maria] Thread 모니터링Maria & Mysql 모두 Thread 방식의 아키텍처로 설계되어있다. Client가 접속하게되면 Thread를 할당해주고 접속이 종료되면 할당했던 Thread를 회수하게 됩니다. 클라이언트가 접속할 때마다 스레드를 할당하고 제거하는 작업은 MySQL 서버 시스템 입장에서 보면 많은 리소스 낭비 및 성능 저하를 발생시키기 때문에 모니터링은 매우 중요한다. 오늘은 접속 스레드에 대한 모니터링과 튜닝 방법에대해 포스팅하도록 하겠습니다. ■ Status MariaDB [(none)]> show global status like '%threads_%'; - Threads_cached 스레드 캐시에 있는 스레드 수 - Threads_connected 현재 오픈된 스레드 수 - Threads_created 연결..
2021.10.07 -
아는 선배에게 많은 기업들이 현재 Redis를 이용해서 Cache Server를 사용하고 있다는 말을 듣게 되었다. 해서 이번에는 Redis를 이용한 Cache Server 구축에 관하여 포스팅을 해볼 생각이다. ■1.Cache 란? - 파레토 법칙이란 80퍼센트의 결과는 20퍼센트의 원인으로 인해 발생한다는 말입니다.- cache가 동작 할 수 있는 철학에는 파레토 법칙이 있습니다.- Cache란 자주사용되는 데이터를 미리 올려놓는 저장소를 말한다. 쉽게 말해 사용자들은 원하는 데이터를 저장하고 나중에 요청이 오면 DB / API를 참조하지 않고 Cache를 접근하여 요청을 처리하게 된다. - Cache 구조 1 ( Look aside Cache ) 일반적으로 많이 사용되는 패턴 - Cache 구조 2..
[Redis] Redis Cache Server 만들기!아는 선배에게 많은 기업들이 현재 Redis를 이용해서 Cache Server를 사용하고 있다는 말을 듣게 되었다. 해서 이번에는 Redis를 이용한 Cache Server 구축에 관하여 포스팅을 해볼 생각이다. ■1.Cache 란? - 파레토 법칙이란 80퍼센트의 결과는 20퍼센트의 원인으로 인해 발생한다는 말입니다.- cache가 동작 할 수 있는 철학에는 파레토 법칙이 있습니다.- Cache란 자주사용되는 데이터를 미리 올려놓는 저장소를 말한다. 쉽게 말해 사용자들은 원하는 데이터를 저장하고 나중에 요청이 오면 DB / API를 참조하지 않고 Cache를 접근하여 요청을 처리하게 된다. - Cache 구조 1 ( Look aside Cache ) 일반적으로 많이 사용되는 패턴 - Cache 구조 2..
2021.10.05 -
많은 회사들이Database cache server용으로 Redis를 이용한다는 말을 듣고 Redis에 대해 공부해보기로 하였다. 오늘은 간단한 Redis 설치 과정에대해 포스팅해야지.. 1. Redis란? - 레디스는 Key-Value 구조의 비정형 데이터를 저장하고 관리하기 위한 Opensource 비 관계형 데이터베이스이다. - 레디스는 모든 데이터를 메모리에 로드해 처리하는 메모리 기반 DBMCS이다. - 데이터 구조로는 String / List / Set / Sorted Set / Hashes를 지원하고 있다. - 많은회사에서 사용되고있으며 안전성 이나 성능면에서 검증된 Database이다. 2. Redis 설치 1) 패키지 설치 - Redis를 설치하기전에 Compile할시 필요한 패키지 설치..
[Redis] Redis 설치많은 회사들이Database cache server용으로 Redis를 이용한다는 말을 듣고 Redis에 대해 공부해보기로 하였다. 오늘은 간단한 Redis 설치 과정에대해 포스팅해야지.. 1. Redis란? - 레디스는 Key-Value 구조의 비정형 데이터를 저장하고 관리하기 위한 Opensource 비 관계형 데이터베이스이다. - 레디스는 모든 데이터를 메모리에 로드해 처리하는 메모리 기반 DBMCS이다. - 데이터 구조로는 String / List / Set / Sorted Set / Hashes를 지원하고 있다. - 많은회사에서 사용되고있으며 안전성 이나 성능면에서 검증된 Database이다. 2. Redis 설치 1) 패키지 설치 - Redis를 설치하기전에 Compile할시 필요한 패키지 설치..
2021.09.30 -
오늘은 MariaDB에서 MSSQL로의 DBLINK에 관하여 글을 쓸 예정이다. 최근 고객사에서 MariaDB에서 MSSQL로 DBLINK를 맺어달라 문의를 받아서 해보게 되었다. MariaDB의 Connect Engine을 이용해서 DBLINK을 맺을 예정이다. 0. Connect Engine? - Connect Storage Engine은 MariaDB 10.2 부터 반영되었다. - MariaDB에서 외부 로컬 또는 원격 데이터를 액세스할 수 있게 해주는 Storage Engine이다. - ODBC,JDBC를 통해 다른 DBMS 또는 제품(Excel)에서 추출한 데이터를 액세스 할 수 있다. - Connect Stroage Engine은 테이블 파티셔닝, MariaDB 가상 칼럼을 지원하며 ROWID..
[MariaDB] MSSQL DBLINK ( Using Connection Engine )오늘은 MariaDB에서 MSSQL로의 DBLINK에 관하여 글을 쓸 예정이다. 최근 고객사에서 MariaDB에서 MSSQL로 DBLINK를 맺어달라 문의를 받아서 해보게 되었다. MariaDB의 Connect Engine을 이용해서 DBLINK을 맺을 예정이다. 0. Connect Engine? - Connect Storage Engine은 MariaDB 10.2 부터 반영되었다. - MariaDB에서 외부 로컬 또는 원격 데이터를 액세스할 수 있게 해주는 Storage Engine이다. - ODBC,JDBC를 통해 다른 DBMS 또는 제품(Excel)에서 추출한 데이터를 액세스 할 수 있다. - Connect Stroage Engine은 테이블 파티셔닝, MariaDB 가상 칼럼을 지원하며 ROWID..
2021.09.17 -
기존 MariaDB를 Replication을 걸어두고 윗단에 Maxscale을 두어서 Auto Failover / VIP 접근 / READ & WRITE 분산을 테스트 해보았다. 아직까지 Replication에서 쓰고있는 고객들은 보지 못하였지만 나중을 위해 테스트해본 것을 기록하였다. 0.TEST 환경 Master 172.40.40.189 Slave 172.40.40.188 Maxscale 172.40.40.187 1.MAXSCALE 설치 ** 1.필요 library 설치 ** [root@maxscale ~]# yum -y install libcurl libaio openssl gnutls libatomic ** 2.Maxscale 유저 그룹 생성 ** [root@maxscale ~]# groupadd..
[MARIA] Maxscale Replication기존 MariaDB를 Replication을 걸어두고 윗단에 Maxscale을 두어서 Auto Failover / VIP 접근 / READ & WRITE 분산을 테스트 해보았다. 아직까지 Replication에서 쓰고있는 고객들은 보지 못하였지만 나중을 위해 테스트해본 것을 기록하였다. 0.TEST 환경 Master 172.40.40.189 Slave 172.40.40.188 Maxscale 172.40.40.187 1.MAXSCALE 설치 ** 1.필요 library 설치 ** [root@maxscale ~]# yum -y install libcurl libaio openssl gnutls libatomic ** 2.Maxscale 유저 그룹 생성 ** [root@maxscale ~]# groupadd..
2021.09.15