본문 바로가기
관리자

Programming-[Backend]/Database

[TIL] MySQL 사용 관련 주요 팁 모음: 타입, INET_ATON, FK 물리적으로 걸지 않기

728x90
반응형

MySQL은 json 필드값들 가상 컬럼으로 잡아주나, 성능이 떨어짐

 

숫자 타입: unsigned 옵션 줘서 음수 사용 안하게 해서 공간 활용도 높이기

 

문자열 타입: text 타입은 테이블 바깥 공간에 따로 저장된다(mySQL)

postgreSQL의 경우 긴 VARCHAR 타입보다 TEXT 타입이 외부 공간에 저장됨에도 불구하고 속도가 빠르다

 

TIMESTAMP는 유닉스 epoch라서 2038년 까지만 사용가능(4바이트)

 

MySQL의 INET_ATON 함수: IPv4 주소를 4바이트로 줄여서 저장해줘서 공간 절약하며, 검증도 해줌

 

Stored Procedure: SQL 쿼리문 등을 DB에 저장해놓는 것. MSSQL, Oracle 실디비 같은건 성능이 좋아서 괜찮은데 MySQL의 경우에는 성능 이슈가 있어서 사용 자제

 

FK를 Physical하게 걸지 말것: DB 로직상 FK가 걸린 테이블을 모두 조회하므로 I/O 부하가 걸리기 때문에 ERD, 테이블 정의서 등에만 설정하여 표시만 할 것

 

 

count 함수: 위험할 수 있음. 300만건 - 1초, 5000만건 10초, 1억건 300~400초

 

index 많을수록 쓰기 작업이 느려지는데, 알파벳 등의 경우 값을 기준으로 새로운 레코드가 들어올 때마다 재배열 일어나기 때문에 느려짐

728x90
반응형