티스토리 뷰
국비학원에서 첫 쿼리문을 시작했을 때 pk값을 bigint로 배웠어서 이번에도 무심코 bigint를 쓰려고 했다.
그런데 갑자기 bigint가 무엇인지 정확하게 알지 못해서 찾아보니 pk id를 왜 bigint로 코딩하였는지 질의응답을 받았다는 글을 보았다.
int와 bigint는 숫자 자료형을 db에 저장한다는 의미를 가지고 있다.
둘의 차이는 byte의 차이인데 int는 4, bigint 8을 메모리에 각각 할당하고 있다.
그 글의 내용에 따르면, id값이 43억이 넘어가는 아주 큰 db에 저장해야 한다면 고민없이 bigint형을 사용해야 한다고 한다.
그런 특수한 경우가 아니고서는 bigint를 쓸지 int를 쓸지 잘 고민해야 한다는 것이다.
어떤 경우에 사용해야 할까
- 저장할 데이터가 크지 않다면 int를 사용하는 것이 좋다.
- 아주 큰 숫자를 다루거나, 미래에 그 값이 엄청나게 커질 가능성이 있는 경우 bigint를 사용하는 것이 좋다.
정리
| ✅ int | bigint | |
| 메모리 저장 공간 | 4바이트 | 8바이트 |
| 주의점 | int는 4바이트, bigint는 8바이트를 사용하므로, bigint가 더 많은 저장 공간을 차지한다. 따라서, 필요 이상의 큰 값을 사용할 경우 메모리 낭비가 발생할 수 있다. |
|
| 선택 | 저장할 데이터가 int 범위 내에 있다면, 메모리 절약을 위해 int를 선택하는 것이 좋다. 예) 사용자 ID나 대부분의 카운터들은 int로 충분하다. |
아주 큰 숫자를 다뤄야 하거나, 미래에 그 값이 엄청나게 커질 가능성이 있는 경우 bigint 를 선택하는 것이 좋다. 예) 거대한 사용자 베이스를 가진 대규모 시스템에서는 사용자 ID를 bigint 로 설정할 수 있다. |
[면접] id를 왜..bigint..?
면접 질문이 정확하게 기억이 나지 않지만 왜 bigint로 했냐는 질문을 받았다.그 질문을 받고 당황스러웠던 포인트는 내가 진짜 아무 생각이 코드를 짜고 개발하고 있었구나 였다.그냥 Spring Boot에
velog.io
'리액트로 웹 개발 A to Z' 카테고리의 다른 글
| 데이터베이스 명명 규칙? (0) | 2024.10.24 |
|---|---|
| 협업할 때 데이터를 어떻게 저장하는 게 좋은 방법일까 (0) | 2024.10.23 |
| crreunt_timestamp와 now() (0) | 2024.10.23 |
| enum과 char / tinyint (0) | 2024.10.23 |
| datetime와 timestamp 뭐가 다르냐 (0) | 2024.10.23 |