데이터베이스의 테이블 크기를 결정하기 위한 쿼리?(계속)
"MySQL 데이터베이스 크기 계산 방법" 웹 사이트는 두 가지 쿼리를 제공합니다.
모든 데이터베이스의 크기 결정
SELECT table_schema "Data Base Name", SUM( data_length + index_length) / 1024 / 1024
"Data Base Size in MB" FROM information_schema.TABLES GROUP BY table_schema ;
데이터베이스의 모든 테이블 크기 결정
SELECT TABLE_NAME, table_rows, data_length, index_length,
round(((data_length + index_length) / 1024 / 1024),2) "Size in MB"
FROM information_schema.TABLES WHERE table_schema = "schema_name";
첫 번째 쿼리는 올바르게 작동하지만 두 번째 쿼리는 결과 집합을 생성하지 않습니다.행 없이 필드 이름만 표시됩니다.데이터베이스에 있는 테이블 크기를 올바르게 표시하도록 두 번째 쿼리를 수정하려면 어떻게 해야 합니까?
교체하다"schema_name"
당신의 데이터베이스 중 하나의 이름으로.
그리고 문자열 리터럴에는 이중 따옴표가 아닌 단일 따옴표를 사용합니다.
이것은 도움이 되는 스레드였습니다.OP의 두 번째 레시피에 대한 이 약간의 변화는 테이블만 반환하고(보기 없음) 테이블 크기별로 반환된 데이터 세트를 가장 큰 것에서 가장 작은 것으로 정렬합니다.
MySQL:
SELECT
TABLE_NAME, table_rows, data_length, index_length,
round(((data_length + index_length) / 1024 / 1024),2) 'Size in MB'
FROM information_schema.TABLES
WHERE table_schema = 'yourSchemaName' and TABLE_TYPE='BASE TABLE'
ORDER BY data_length DESC;
PostGRES: 저는 오늘 PostGRES에서 같은 일을 해야 했고, 이 답변에서 약간의 도움을 빌렸습니다. (그리고 브라우저 탭을 닫은 후에 제가 잃어버린 또 다른 답변), 결국 이렇게 되었습니다.다른 사람에게 유용할 경우를 대비하여 여기에 추가합니다.
[편집 9.28.2021: RDS 인스턴스에서 오류가 발생했습니다. 기본적으로 'pg_total_relation_size가 존재하지 않습니다'라는 오류가 발생했습니다. 해결책은 캐스트하는 것이었습니다.t.tbl::text
검색할 수 있습니다.]
SELECT
t.tbl table_name,
ct.reltuples row_count,
pg_total_relation_size(t.tbl::text) size,
pg_size_pretty(pg_total_relation_size(t.tbl::text)) pretty_size
FROM (
SELECT
table_name tbl
FROM information_schema.tables
WHERE
table_schema = 'public'
AND table_type = 'BASE TABLE'
) t
join (
SELECT
relname, reltuples
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE
nspname NOT IN ('pg_catalog', 'information_schema')
AND relkind='r'
) ct
on t.tbl = ct.relname
order by size desc ;
이게 더 나은 것 같아요..http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html
show table status from database;
데이터베이스의 각 테이블 크기를 지정하는 데 사용하는 쿼리입니다.
SELECT CASE WHEN (GROUPING(sob.name)=1) THEN 'All_Tables'
ELSE ISNULL(sob.name, 'unknown') END AS Table_name,
SUM(sys.length) AS Byte_Length
FROM sysobjects sob, syscolumns sys
WHERE sob.xtype='u' AND sys.id=sob.id
GROUP BY sob.name
WITH CUBE
언급URL : https://stackoverflow.com/questions/8363435/query-to-determine-the-size-of-tables-in-a-database-mysql
'source' 카테고리의 다른 글
LEFT JOIN을 사용할 때와 INNER JOIN을 사용할 때? (0) | 2023.08.29 |
---|---|
jQuery 플러그인 검증 - 단일 필드의 유효성 검사 트리거 (0) | 2023.08.29 |
오라클에서 DBlink의 동의어를 사용하는 방법은 무엇입니까? (0) | 2023.08.29 |
CSS에서 온클릭 효과를 얻을 수 있습니까? (0) | 2023.08.24 |
Git Clone: 파일만 부탁합니다. (0) | 2023.08.24 |