본문 바로가기

IT/SQL24

2022-07-19-[Docker]Mysql Replication layout : post title : "Docker 사용하여 Mysql Replication" category : MySQL Replication DBMS를 사용하는 경우, 데이터를 백업 하여 보호하기 위해서나 Write/Read 로 나눠서 부하를 분산하여 사용하기도 한다. Master, Slave 두가지로 나뉘는데 역할은 다음과 같다. MySQL 버전이 다른 경우 Slave 서버가 상위 버전 이여야 한다 Master 웹서버로 부터 등록/수정/삭제 요청시 Binarylog를 생성하여 Slave 서버로 전송한다. Slave Master DBMS로 부터 전달받은 Binarylog를 데이터로 반영하게 됩니다 Binarylog (아카이브 로그) DML, DDL 등의 모든 이벤트를 저장하는 로그이다. Slave.. 2023. 2. 27.
2022-07-18-MATCH AGAINST 사용하여 성능 개선 layout : post title : "MATCH AGAINST 사용하여 성능 개선" category : MySQL 원인 mysql에서 content 검색시 like 를 사용하거나 in, 을 사용하여 검색하는 경우 모든 데이터를 검색해야 하기에 access type 이 All 로 실행이 된다. like 사용시 explain format = json select * from company c join employer e on c.id = e.company_id where c.name like '%이름%' ; 결과 값 { "query_block": { "select_id": 1, "table": { "table_name": "c", "access_type": "ALL", "possible_keys": [".. 2023. 2. 27.
2022-07-07-index 사용하여 성능 개선 layout : post title : "index 사용하여 성능 개선하기" category : MySQL 원인 mysql에서 pk 를 생성하는 경우에는 index가 자동으로 생성된다. fk 생성시에도 index 생성되나 예제를 위해 fk는 생략하였다. 그러나 사용하다 보면 위와 같이 테이블 구조가 되어 있으며 company 를 이용하여 employer를 찾는 경우 full scan(type = ALL) 이 발생하게 된다. -- 예제를 만드려고 생성한 쿼리 -- 아래 같은 경우에는 쿼리를 변경하는게 좋다. -- explain -- explain format = json select e.id from employer e join company c on e.company_id = c.id where c.id.. 2023. 2. 27.
2022-07-07-explain layout : post title : "Mysql Explain" category : MySQL MySQL 옵티마이저 MySQL 옵티마이저는 비용에 대하여 어떠한 실행 계획을 사용하여 쿼리 실행 시 발생하는 비용을 예측하여 가장 적은 비용이 발생하는 쿼리를 실행 하도록 한다. 추정 값이기 때문에 실행 시에 다른 결과가 나올 수 있다. EXPLAIN EXPLAIN은 MySQL의 실행 계획에 대하여 설멍하는 명령어이다. JSON 형식의 출력이 가능하며 JSON 형식을 사용하는 경우 더 자세한 내용을 볼 수 있다. explain select employer0_.id as id1_16_0_, employer0_.company_id as company22_16_0_, employer0_.name as name1.. 2023. 2. 27.