MySQL 데이터베이스의 실제 크기를 얻는 방법
MySQL 데이터베이스가 웹 호스트를 선택하기 위해 사용하는 공간을 알고 싶습니다.명령어를 찾았습니다.SHOW TABLE STATUS LIKE 'table_name'질문을 하면 다음과 같은 메시지가 나타납니다.
Name | Rows | Avg. Row Length | Data_Length | Index Length
---------- ---- --------------- ----------- ------------
table_name 400 55 362000 66560
- 숫자는 반올림됩니다.
이 테이블에 362000 또는 400*362000 = 144800000바이트의 데이터가 있습니까?인덱스 길이는 무엇을 의미합니까?감사합니다!
MySQL 포럼에 있는 S. Prakash에서 다음 정보를 얻습니다.
SELECT table_schema "database name",
sum( data_length + index_length ) / 1024 / 1024 "database size in MB",
sum( data_free )/ 1024 / 1024 "free space in MB"
FROM information_schema.TABLES
GROUP BY table_schema;
또는 복사 붙여넣기를 쉽게 할 수 있도록 한 줄에 다음과 같이 하십시오.
SELECT table_schema "database name", sum( data_length + index_length ) / 1024 / 1024 "database size in MB", sum( data_free )/ 1024 / 1024 "free space in MB" FROM information_schema.TABLES GROUP BY table_schema;
Mysql 클라이언트에서 다음 명령을 실행하면 Mysql 데이터베이스의 크기를 얻을 수 있습니다.
SELECT sum(round(((data_length + index_length) / 1024 / 1024 / 1024), 2)) as "Size in GB"
FROM information_schema.TABLES
WHERE table_schema = "<database_name>"
phpMyAdmin을 사용하면 이 정보를 알 수 있습니다.
"데이터베이스"(맨 위의 메뉴)로 이동하여 "통계 활성화"를 클릭하십시오.
다음과 같은 것이 표시됩니다.

사이즈가 커짐에 따라 정확도가 저하될 가능성이 있습니다만, 목적에 따라서는 충분히 정확합니다.
MB 단위로 찾으려면 다음과 같이 하십시오.
SELECT table_schema "DB Name",
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM information_schema.tables
GROUP BY table_schema;
기본적으로 DB 쿼리(데이터 길이 + 인덱스 길이) 또는 파일 크기 확인의 두 가지 방법이 있습니다.인덱스 길이는 인덱스에 저장된 데이터와 관련이 있습니다.
자세한 내용은 다음과 같습니다.
http://www.mkyong.com/mysql/how-to-calculate-the-mysql-database-size/
응답에는 테이블의 오버헤드크기와 메타데이터 사이즈가 포함되어 있지 않습니다.
다음은 데이터베이스에 의해 할당된 "디스크 공간"에 대한 보다 정확한 추정입니다.
SELECT ROUND((SUM(data_length+index_length+data_free) + (COUNT(*) * 300 * 1024))/1048576+150, 2) AS MegaBytes FROM information_schema.TABLES WHERE table_schema = 'DATABASE-NAME'
모든 MySQL 데이터베이스의 크기를 찾으려면 이 명령을 사용합니다. 각 데이터베이스의 크기를 메가바이트 단위로 표시합니다.
SELECT table_schema "database", sum(data_length + index_length)/1024/1024 "size in MB" FROM information_schema.TABLES GROUP BY table_schema;
대용량 데이터베이스를 사용하는 경우 다음 명령을 사용하여 결과를 기가바이트 단위로 표시할 수 있습니다.
SELECT table_schema "database", sum(data_length + index_length)/1024/1024/1024 "size in GB" FROM information_schema.TABLES GROUP BY table_schema;
예를 들어 특정 데이터베이스의 크기만 표시하는 경우YOUR_DATABASE_NAME, 다음의 쿼리를 사용할 수 있습니다.
SELECT table_schema "database", sum(data_length + index_length)/1024/1024/1024 "size in GB" FROM information_schema.TABLES WHERE table_schema='YOUR_DATABASE_NAME' GROUP BY table_schema;
SUM(Data_free) 유효하거나 무효일 수 있습니다.그것은 의 역사에 달려 있다innodb_file_per_table자세한 내용은 여기를 참조하십시오.
MySQL Utilities by Oracle에는 모든 데이터베이스의 디스크 사용량을 표시하는 mysqldiskusage라는 명령이 있습니다.https://dev.mysql.com/doc/mysql-utilities/1.6/en/mysqldiskusage.html
MySql Workbench를 사용하는 경우 데이터베이스 크기, 각 테이블 크기, 인덱스 크기 등의 모든 세부 정보를 쉽게 얻을 수 있습니다.
- 스키마 오른쪽 클릭
스키마 검사기 선택 옵션
스키마 크기에 대한 모든 세부 정보를 표시합니다.
[ Tables ]탭을 선택하면 됩니다.
Data Light 열에 표시되는 테이블 크기
언급URL : https://stackoverflow.com/questions/14714750/how-to-get-true-size-of-mysql-database
'source' 카테고리의 다른 글
| JPA 저장소의 다른 테이블에서 데이터 선택 (0) | 2023.01.26 |
|---|---|
| .whl 파일이 있는 Python 패키지를 설치하려면 어떻게 해야 하나요? (0) | 2023.01.26 |
| 라라벨:속성별 컬렉션에서 개체 가져오기 (0) | 2023.01.26 |
| Python에서 수동으로 예외 발생(던지기) (0) | 2023.01.26 |
| JUnit 테스트는 어떻게 하면 대기시킬 수 있나요? (0) | 2023.01.26 |

