일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 입출력
- 프로그래머스
- 객체지향
- 붕대 감기
- CPU
- continue 사용법
- spring security
- 쿠키
- spring security 설정
- over()
- 멀티태스킹
- 다형성
- 붕대 감기 자바
- 오버라이딩
- SQL Mapper
- 오블완
- 오버로딩
- 캡슐화
- 자바의정석
- hackerrank
- 리눅스
- 중첩 break
- java
- 티스토리챌린지
- 프로그래머스 붕대 감기
- 자바의 정석
- break 사용법
- contiune
- 멀티프로세싱
- 혼공얄코
- Today
- Total
목록DB/MYSQL와 MariaDB (6)
쉽게 쉽게
▤ 목차1. 이슈MariaDB에서 오라클 DB를 연동하여 데이터를 실시간으로 가져와야 할 필요성이 생겼다.때문에 이기종간의 DB를 연동하기 위해서 MariaDB(MySQL)에서 제공하는 CONNECT Storage Engine을 사용하고자 했다. CONNECT Storage Engine은 XML이나 엑셀 파일, 오라클이나 MSSQL과 같은 DBMS들의 테이블을 MariaDB에서 직접 쿼리 할 수 있도록 연결 기능을 제공해주는 스토리지 엔진이다.https://mariadb.com/kb/en/connect/ CONNECT mariadb.com다만 이 글은 CONNECT Storage Engine 연동 후 사용법과 주의점을 기록하기 위해 글을 작성했다.구현방법은 아래 링크를 참고하시길 바란다.https://c..
▤ 목차1. MariaDB JDBC 버전 확인 및 다운로드이클립스에 MariaDB를 연동하기 위해서는 MariaDB JDBC (MariaDB_Java_Client.jar)가 필요하다.자바 버전에 따른 JDBC 버전이 다르기 때문에 알맞은 JDBC를 다운로드할 필요가 있다.https://mariadb.com/kb/en/mariadb-connector-j-releases/ List of MariaDB Connector/J ReleasesA list of all Connector/J releasesmariadb.com이 링크를 통해 자바버전에 맞는 JDBC를 알 수 있다.버전을 확인 후 아래의 링크를 통해 JDBC를 다운받을 수 있다.https://mvnrepository.com/artifact/org.mar..
▤ 목차1. 윈도우 함수란?윈도우함수(Window Function)란 행과 행 간의 관계를 정의하기 위해 제공되는 함수를 의미한다. 집계함수(AVG, SUM, COUNT) 혹은 윈도우 함수 전용 함수(ROW NUMBER, LEAD, LAG)로 분류된다. 윈도우 함수를 통해 순위, 합계, 평균, 행 위치 등을 조작할 수 있다.1. 윈도우 함수의 구조Window Function(함수_적용_열) OVER (PARTITION BY 그룹열 ORDER BY 순서열)-- Window Function : 순위함수(RANK, DENSE_RANK 등)나 집계함수(SUM, MAX 등)-- PARTION BY : 소그룹으로 분류 -- ORDER BY : 분류된 소그룹 정렬-- 순서열 : 정렬 기준 행 설정2. 윈도우 함수 종..
▤ 목차1. 이슈SELECT문 조회한 결과에 대한 COUNT()들을 같이 출력할 필요성이 생겼다.다만 COUNT 조건이 각기 달라서 이를 해결하기 위해 방안을 찾아봤다. 1. SELECT문 조회 쿼리ACT_TIME 테이블에는 활동시간과 종료시간 정보가, REPORT_CONTENT 테이블에는 보고서 타입이 존재한다.이를 JOIN하여 유저별로 정보를 가져왔을 때, 아래와 같은 조회결과가 나오게 된다.이때, A타입의 보고서 수 , B타입의 보고서 수의 통계를 결과와 함께 추출해야 한다.SELECT RC.CONTENT_TYPE, /* 보고서 타입 (A, B 타입존재) */ AT.ACT_DATE, /* 활동일 */ AT.START_TIME, /* 활동시간 */ AT.END_TIME /* 종료시간 */..
1. 이슈 MariaDB은 기본적으로 대소문자 구분 없이 비교 및 검색이 가능하다.그러나 userid로 로그인 중 대소문자가 구별이 되지 않아 오류가 발생했다.예를 들어 테스트라는 유저의 아이디는 test12인데, Test12와 test12가 모두 동일하게 조회되어 로그인이 되지 않았던 현상이다.때문에 MariaDB에서 직접적으로 대소문자를 구별해주기 위한 작업을 진행했다. 2. 해결방법아래는 문제가 발생했던 쿼리를 재현한 것이다. --문제 쿼리--SELECT userid FROM user_table WHERE userid = 'test12'-- 조회결과 -- Test12, test12 모두 나옴해결방법1: 조건에 BINARY 함수 추가--문제 쿼리--SELECT userid FROM user_tab..
1. 이슈 속도가 너무 오래 걸려 불편을 주는 Mysql 쿼리를 발견하여 이를 개선하고자 했다.속도저하의 원인으로는 Join시 데이터가 많은 테이블의 값을 읽어오는데 오래 걸렸던 것으로 짐작된다. 이를 해결하고자 인덱스, 쿼리개선, DB 격리수준 변경 등 다양한 방법을 진행했다. 2. 쿼리 SELECT A.name , B.code, C.text FROM SmallTable A INNER JOIN MiddleTable B ON A.user_code = B.user_code INNER JOIN LargeTable C ON A.user_code = C.user_code AND C.ROLE = (SELECT ROLE FROM LargeTable WHERE user_code = ..