MySQL에서 저장된 바이트 값을 메가바이트(MB) 단위로 변환해야 하는 경우가 종종 있습니다. 이 글에서는 간단한 나눗셈 연산을 통해 바이트를 MB로 손쉽게 계산하는 방법을 알아보겠습니다.
1. 테이블 생성하기
먼저 BIGINT 타입의 컬럼을 가진 테이블을 생성합니다. BIGINT는 8바이트 부호 있는 정수를 저장할 수 있어, 큰 바이트 값도 문제없이 처리할 수 있습니다.
mysql> create table DemoTable2031
-> (
-> ByteValue bigint
-> );
Query OK, 0 rows affected (1.17 sec)
2. 샘플 데이터 삽입하기
INSERT 명령을 사용하여 테이블에 바이트 값을 저장합니다. 여기서는 1MB에 해당하는 1048576과 1GB에 해당하는 1073741824 두 개의 값을 넣어보겠습니다.
mysql> insert into DemoTable2031 values(1048576);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable2031 values(1073741824);
Query OK, 1 row affected (0.13 sec)
3. 저장된 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회하여 데이터가 정상적으로 입력되었는지 확인합니다.
mysql> select *from DemoTable2031;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+------------+
| ByteValue |
+------------+
| 1048576 |
| 1073741824 |
+------------+
2 rows in set (0.00 sec)
4. 바이트를 메가바이트(MB)로 변환하기
바이트 값을 MB로 변환하는 핵심 원리는 간단합니다. 1MB는 1024 × 1024 = 1,048,576바이트이므로, 저장된 바이트 값을 이 값으로 나누면 됩니다.
mysql> select (ByteValue/(1024*1024)) as MB from DemoTable2031;
실행 결과는 다음과 같습니다.
+-----------+
| MB |
+-----------+
| 1.0000 |
| 1024.0000 |
+-----------+
2 rows in set (0.00 sec)
결과 해석
출력 결과를 보면 1048576바이트는 정확히 1MB, 1073741824바이트는 1024MB(즉, 1GB)로 변환된 것을 확인할 수 있습니다.
참고로 결과를 소수점 없이 깔끔하게 표시하고 싶다면 ROUND 함수나 FORMAT 함수를 함께 사용할 수 있습니다. 예를 들어 SELECT ROUND(ByteValue/(1024*1024), 2) AS MB처럼 작성하면 소수 둘째 자리까지 반올림된 값을 얻을 수 있습니다. 또한 기가바이트(GB)로 변환하려면 1024를 한 번 더 곱한 (1024*1024*1024)로 나누면 됩니다.