Int 또는 datetime MySQL 시간 필드의 사용 여부

출처: 인터넷
작성자: 사용자
키워드: 웹 프로그래밍 MySQL 자습서

오늘 Deder MySQL 시간 필드를 발견, 사용 된다

'SendData' int (a) 서명 하지 NULL 기본 '0';


다음 인터넷에서이 문서를 찾아, 그것을 시간 필드 필드 작업에서 변환 없이 검색, int와 작업에 참가 하는 경우 직접 비교에 사용 된 시간! 효율성 높은 아래 설명 된 대로 이기도 합니다.

최종 분석에서: int. 데이터 형식을 대체 하는 효율적입니다

환경:

윈도우 XP
PHP 버전 5.2.9
MySQL 서버 5.1


첫 번째 단계는, 표 date_test (int 시간, 하지 고정된 길이)를 만들

CREATE TABLE '테스트'. 'Date_test' (
'ID' INT 하지 auto_increment, NULL
' Start_time ' INT not NULL
' Some_content ' VARCHAR (255) NULL이 아닌
기본 키 (이 하 ' id')
) 엔진 InnoDB; =


2 단계, 두 번째 테이블 date_test2를 만들 (고정된 길이, int 시간)

CREATE TABLE '테스트'. 'Date_test2' (
'ID' INT 하지 auto_increment, NULL
' Start_time ' INT not NULL
' Some_content ' CHAR (255) NULL이 아닌
기본 키 (이 하 ' id')
) 엔진 InnoDB; =


3 단계, 세 번째 테이블 date_test3를 만들 (varchar, datetime 시간)

CREATE TABLE '테스트'. 'Date_test3' (
'ID' INT 하지 auto_increment, NULL
' Start_time ' DATETIME NULL이 아닌
' Some_content ' VARCHAR (255) NULL이 아닌
기본 키 (이 하 ' id')
) 엔진 InnoDB; =


4 단계, 네 번째 테이블 Date_test3 (char, datetime 시간)

CREATE TABLE '테스트'. 'Date_test4' (
'ID' INT 하지 auto_increment, NULL
' Start_time ' DATETIME NULL이 아닌
' Some_content ' CHAR (255) NULL이 아닌
기본 키 (이 하 ' id')
) 엔진 InnoDB; =


좋아, 우리는 테스트를 할 시작, 이제는 환경 PHP, 각 테이블에 데이터의 첫 번째 삽입 1 백만 조각입니다. 삽입 시간 200 시간 나누어져, 각 시간 입력 창 5000.

표 1 실행 기록: 페이지 실행 시간: 26.5997889042 초, 재미 있는 현상이 발견 삽입할 때: 선택 (id) 수 'date_test' 1 곳에서 100w에 직접 선택 결과 *에서 ' Date_ 테스트 ' 1,000,374 결과입니다. (나중에 잠재적으로 가까운 값에 대 한 MySQL FAQ 3.11 참조.)

표 II 실행 기록: 페이지 실행 시간: 62.3908278942 초,이 레코드는 1,000,066.

표 3 실행 기록: 페이지 실행 시간: 30.2576560974 초, 이것은 1,000,224.

테이블 4 실행 기록: 페이지 실행 시간: 67.5393900871 초,이 시간 이다: 1,000,073.

이제 인덱스에 4 개의 테이블의 Start_time 필드 하나를 추가 합니다.

4 개의 테이블에 대 한 업데이트를 테스트 하 고 별도로, 100 개의 레코드를 업데이트 한 시간을 기록:

테이블: 페이지 실행 시간: 2.62180089951 초 (하지 고정된 길이, int 시간)

표 2: 페이지 실행 시간: 2.5475358963 초 (고정된 길이, int 시간)

표 3: 페이지 실행 시간: 2.45077300072 초 (varchar, datetime 시간)

표 4: 페이지 실행 시간: 2.82798409462 초 (char, datetime 시간)

4 테이블의 읽기 테스트, 100 무작위 레코드를 선택, 기본으로 쿼리 ID를 키 고 시간을 기록.

테이블: 페이지 실행 시간: 0.382651090622 초 (하지 고정된 길이, int 시간)

표 2: 페이지 실행 시간: 0.542181015015 초 (고정된 길이, int 시간)

표 3: 페이지 실행 시간: 0.334048032761 초 (varchar, datetime 시간)

표 4: 페이지 실행 시간: 0.506206989288 초 (char, datetime 시간)

4 테이블의 읽기 테스트, 10 랜덤을 선택 기준으로 star_time를 별도로 기록 하 고 시간을 기록.

테이블: 페이지 실행 시간: 30.1972880363 초 (하지 고정된 길이, int 시간)

표 2: 페이지 실행 시간: 65.1926910877 초 (고정된 길이, int 시간)

표 3: 페이지 실행 시간: 39.7210869789 초 (varchar, datetime 시간)

표 4: 페이지 실행 시간: 70.4632740021 초 (char, datetime 시간)

볼륨은 작은, 그래서 우리는 심지어 작은 변화를 기본, 때문에 그것은 의미가 있습니다.

결론:

큰 데이터 볼륨, 많은 선택 하는 경우 * 테이블에서 어디 시간 > xx 같은 쿼리, MySQL5.1에 datetime에 대 한 int를 사용 하는 것.

관련 문서

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.