source

MySQL 데이터베이스의 실제 크기를 얻는 방법

bestscript 2023. 1. 26. 09:14

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을 사용하면 이 정보를 알 수 있습니다.

"데이터베이스"(맨 위의 메뉴)로 이동하여 "통계 활성화"를 클릭하십시오.

다음과 같은 것이 표시됩니다.

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를 사용하는 경우 데이터베이스 크기, 각 테이블 크기, 인덱스 크기 등의 모든 세부 정보를 쉽게 얻을 수 있습니다.

  1. 스키마 오른쪽 클릭
  2. 스키마 검사기 선택 옵션

    여기에 이미지 설명 입력

  3. 스키마 크기에 대한 모든 세부 정보를 표시합니다.

  4. [ Tables ]탭을 선택하면 됩니다.

    여기에 이미지 설명 입력

  5. Data Light 열에 표시되는 테이블 크기

언급URL : https://stackoverflow.com/questions/14714750/how-to-get-true-size-of-mysql-database