업무 중 트랜젝션 내에서 특정 테이블에 insert 한 데이터를 바로 다시 select 하는 비즈니스 로직을 작성하였는데, 이 조회 반환 값이 null이 되는 문제를 마주하게 되었다. 읽기 작업과 쓰기 작업의 DB 커넥션을 분리해서 사용하고 있었고, 커밋되지 않은 데이터였기 때문에 읽기용 커넥션에서 새로 추가한 데이터를 읽어올 수가 없었다. insert를 하는 커넥션과 동일한 커넥션에서 조회하도록 하여 문제는 해결하였지만, 문제의 원인이 궁금해졌다. (현재 MySQL InnoDB 스토리지 엔진을 사용 중이다.) 데이터 정합성 (Consistency) 데이터가 서로 모순 없이 일관되게 일치해야 함을 의미한다. 예를 들어, 상품 테이블에서 상품번호 1의 이름은 ‘도넛’인데, 주문 테이블에서 상품번호 1의 이..
‘ABCD’를 INSERT 할 경우 CHAR CHAR : 저장공간의 크기가 고정적이다. CHAR(10) 컬럼에 ‘ABCD’를 insert 할 경우, 6바이트가 남아있다. VARCHAR VARCHAR : 저장되는 값에 따라 저장공간이 변한다. 해당 값의 길이를 별도로 저장할 1~2바이트를 추가로 필요로 한다. VARCHAR(10) 컬럼에 ‘ABCD’를 insert 할 경우, 길이를 나타내는 숫자 4를 위한 1바이트와, ‘ABCD’를 저장하기 위한 4바이트, 총 5바이트의 저장공간이 생긴다. ‘ABCD’→’ABCDE’로 UPDATE 할 경우 CHAR(10) : 이미 10바이트가 준비되어 있으므로 그냥 변경되는 컬럼의 값을 업데이트 VARCHAR(10) : 현재 4바이트밖에 저장할 수 없는 구조이므로 더 큰 ..
업무 중에 character set utf8mb4 collate utf8mb4_general_ci 로 선언된 컬럼을 발견했다. utf8mb4를 쓰면 이모지를 지원한다는 것 밖에 몰랐기 때문에 이참에 한번 찾아봤다. 문자 집합 (Character Set) 문자 집합(Character Set)은 문자열에서 사용하는 문자의 집합이다. 예를 들어 a-z까지의 알파벳이 있고 각 알파벳마다 숫자를 a=1, b=2, c=3,…로 연결한다고 가정해보자. 문자 a는 심볼이고 그 a와 연결된 숫자 1은 a의 인코딩(=부호화, 코드화)이다. 이 a부터 z까지의 조합과 코드를 문자 집합(Character Set)이라고 한다. 주요 문자 집합 SHOW CHARACTER SET; 명령어로 MySQL에서 지원하는 문자 집합을 조회..
업무에 바로 쓰는 SQL 튜닝 - YES24 업무에 바로 쓰는 SQL 튜닝 - YES24 SQL 튜닝의 기본 원리와 사례로 배우는 상황별 튜닝 방법 SQL 튜닝은 수많은 데이터를 더 빠르고 강력하게 처리하도록 해주는 가장 중요한 기술이다. 하지만 쉽지 않은 내용 때문에 부담감을 갖고 www.yes24.com 우리 회사에서는 인덱스를 중요하게 생각하고 있고 면접때도 인덱스 질문을 받았다. 하지만 저는 당시 인덱스에 대해 전혀 개념이 없어 유튜브 설명영상도 보고 블로그도 찾아봤지만 ‘그래서 난 뭘 해야하지?’ 하는 막연함만 가진 채 시간을 보냈다. 그러던 중에 이 책을 접하게 되었고, 인덱스의 개념과 실행계획 보는 법, SQL 튜닝에 대해 공부할 수 있게 되었다. 책의 모든 내용이 다 주옥같지만 제가 가장 ..
- Total
- Today
- Yesterday
- 쿠버네티스
- database
- 주니어개발자
- k8s
- MySQL
- 몽고디비
- index
- 백엔드
- NoSQL
- laravel
- redis
- mongoDB
- 샤딩
- 라라벨
- 도커
- 샤드
- phpUnit
- laravel 테스트코드
- devops
- docker
- laravel 테스트
- pods
- java
- php
- 대규모 데이터 처리
- 분산처리
- springboot
- kubernetes
- 리눅스 컨테이너
- mockery
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |