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

웹 호스트를 선택하기 위해 MySQL 데이터베이스가 얼마나 많은 공간을 사용하고 있는지 알고 싶습니다. 나는 명령을 찾았 SHOW TABLE STATUS LIKE 'table_name'으므로 쿼리를 할 때 다음과 같은 것을 얻습니다.

Name       | Rows | Avg. Row Length | Data_Length | Index Length
----------   ----   ---------------   -----------   ------------
table_name   400          55            362000        66560
  • 숫자는 반올림됩니다.

그래서 내가해야합니까 362,000 또는 400 * 362,000 = 144,800,000 이 테이블 바이트의 데이터를? 그리고 색인 길이는 무엇을 의미합니까? 감사 !



답변

S. Prakash는 MySQL 포럼 에서 찾을 수 있습니다 .

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'


답변

SUM(Data_free) 유효 할 수도 있고 유효하지 않을 수도 있습니다 . 의 역사에 따라 다릅니다 innodb_file_per_table. 자세한 내용은 여기를 참조하십시오 .