2016-07-04 3 views
0

내 환경에 2 개의 MySQL DB가 있습니다. 하나는 40Mb 크기이고 다른 하나는 20Gb입니다. 이들은 infoview라는 비즈니스 오브젝트 응용 프로그램에 속합니다. 40Mb에있는 크기가 정확한 크기이고 작동중인 infoview 응용 프로그램입니다.MySQL5 - 스키마의 각 열의 크기 확인

cms_infoobjects6 테이블에서 정확히 어떤 데이터가 해당 공간을 사용하고 있는지 알고 싶습니다.

나는 내 DB 친구들과 이야기하고 있는데 나는 어디에도 가지 않는 것처럼 보이지만 그는 longblob 열을 볼 수는 있지만 실제 정보는 없다고 말했다.

답변

0

이와 같은 쿼리를 사용할 수 있습니다. 거기에 모든 테이블에 대한 모든 정보. 은 구멍 테이블 크기를 가져 오기 위해 INDEX_LENGTH + DATA_LENGTH를 추가해야합니다.

SELECT * FROM information_schema.tables 
WHERE 
    table_schema='yourSchema' 
AND 
    TABLE_NAME='job'; 

샘플

MariaDB [yourschema]> SELECT * FROM information_schema.tables 
    -> WHERE 
    -> table_schema='yourSchema' 
    -> AND 
    -> TABLE_NAME='job'\G 

*************************** 1. row *************************** 
    TABLE_CATALOG: def 
    TABLE_SCHEMA: yourschema 
    TABLE_NAME: job 
    TABLE_TYPE: BASE TABLE 
     ENGINE: InnoDB 
     VERSION: 10 
    ROW_FORMAT: Compact 
    TABLE_ROWS: 7 
AVG_ROW_LENGTH: 2340 
    DATA_LENGTH: 16384 
MAX_DATA_LENGTH: 0 
    INDEX_LENGTH: 0 
     DATA_FREE: 0 
AUTO_INCREMENT: NULL 
    CREATE_TIME: 2016-06-28 11:46:14 
    UPDATE_TIME: NULL 
    CHECK_TIME: NULL 
TABLE_COLLATION: utf8_general_ci 
     CHECKSUM: NULL 
CREATE_OPTIONS: 
    TABLE_COMMENT: 
1 row in set (0.08 sec) 

MariaDB [yourschema]> 
0

사용 SHOW CREATE TABLE tablename은 주어진 테이블에 대한 스키마를 표시합니다. 즉 LONGBLOB이라고 할 수 있습니다. 최대 4GB의 데이터를 저장할 수있는 열을 의미합니다. 100 자까지 허용되는 열인 VARCHAR(100)이라고 할 수 있습니다.

이 열 실제 크기를 확인하려면, 당신은 col에 대한 바이트 길이의 목록을 제공 할 것

SELECT LENGTH(col) FROM tablename; 

뭔가를해야합니다.

무엇이 문제입니까?