2010-03-26 4 views
3

INFORMATION_SCHEMA의 "TABLES"테이블의 CRETAE_TIME 컬럼은 모든 나의 innodb 테이블에 대해 동일한 CREATE_TIME을 보여줍니다. 즉,이 테이블은 2010-03-26 06:52:00과 2010-03-26 06:53:00 사이에 만들어졌지만 실제로는 몇 달 전에 만들어졌습니다.Innodb 테이블의 생성 시간

Innodb 테이블에 대해 CREATE_TABLE 필드가 자동으로 변경됩니까?

답변

3

information_schema의 create_time 및 update_time 필드는 테이블의 기본 저장소의 생성/수정 타임 스탬프에 해당합니다.

MyISAM에서는 각 테이블마다 고유 한 파일이 있으므로 해당 파일의 생성/수정 타임 스탬프가 반환됩니다.

그러나 InnoDB의 경우 모든 테이블의 저장소는 ibdata라는 단일 파일 안에 있으므로 하나의 만 생성/수정 타임 스탬프가 있습니다. 이 1 개의 타임 스탬프는 모든 InnoDB 테이블에 대해서 돌려 주어집니다.

+0

오늘은 어떻게 바뀌 었습니까? 나는 어제를 확인했고 그것은 어제의 날짜를 창조 시간으로 보지 못했습니다. – shantanuo

+1

당신은 innodb 엔진으로 테이블 당 하나의 파일을 생성 할 수 있으며 그렇게하는 것이 좋습니다. http://dev.mysql.com/doc/refman/5.0/en/multiple-tablespaces.html innodb_file_per_table –

+1

정확하지 않다고 생각합니다. 나는 CREATE_TIME이 InnoDB의 FRM 파일을 기반으로하고 UPDATE_TIME이 InnoDB의 경우 항상 null이라고 생각한다. 따라서 innodb_file_per_Table은 관련이 없습니다. –

4

InnoDB의 경우 INFORMATION_SCHEMA.TABLESCREATE_TIME 값은 테이블의 FRM 파일 수정 시간을 기준으로합니다. 따라서 이것은 마지막으로 ALTER TABLE 또는 OPTIMIZE TABLE을 실행 한 시간을 나타냅니다.