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
반응형
'Programming-[Backend] > Database' 카테고리의 다른 글
[경험 요약] Atomikos multi-database transaction 묶기 (0) | 2024.05.04 |
---|---|
[TIL][link] DB Connection Pooling, context manager (0) | 2023.09.18 |
[TIL] DB pagination offset 문제, covering index (0) | 2023.08.17 |
[TIL] insert시 ForeignKey에 제한 걸기: DB Trigger 사용 (2) | 2023.07.23 |
[TIL] 😎 MYSQL 필드 최대 길이 정의 varchar 255 vs 191 (0) | 2023.05.04 |