database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 27921 게시물 읽기
No. 27921
date와 timestamp 중에서 어느 쪽 인덱스가 유리할까요?
작성자
다라나
작성일
2008-12-12 16:11ⓒ
2008-12-12 16:31ⓜ
조회수
6,182

100만 건 정도가 들어있는 테이블에 입력시간을 나타내는 reg_date를 새로 추가하게 됐습니다.

Mysql 매뉴얼에 보면 date는 3바이트, timestamp는 4바이트입니다.

  • DATE: A three-byte integer packed as DD + MM×32 + YYYY×16×32

  • TIMESTAMP: A four-byte integer representing seconds UTC since the epoch ('1970-01-01 00:00:00' UTC)

제가 원하는 등록시간은 date를 하나 timestamp를 하나 크게 상관 없습니다. YYYY-MM-DD 만 알면 되니까요. 단 date는 php에서 입력 처리를 해줘야 하고 timestamp는 mysql의 default current_timestamp를 사용할 수 있다는 점이 다릅니다.


문제는 이 reg_date를 group by 해서 매 시간마다 결과를 내야 합니다. reg_date에서 최근 30일 이내의 입력 건만 뽑아 group by해야 합니다. 100만 건이 넘으니 인덱스를 타야 하는데, 어느 쪽이 더 유리할 지 모르겠습니다. 데이터는 보통 하루에 몇천 개 수준으로 insert, delete 됩니다.


일단 무식한 제 생각에 date를 하면 일별로 나눠지니까 같은 값이 많아서 더 유리할 거 같습니다. timestamp는 초 단위로 바뀌니까 아무래도 같은 값이 덜할 거 같아서요. 물론 이것은 integer 인덱스를 어떻게 만드는 지 구조를 몰라서 드리는 질문이기도 합니다.


Mysql 5.0.x 대에서 date와 timestamp 의 인덱스는 어떤 쪽이 유리할까요? 아니면 바이트 수 차이만 있지 같은 integer 이므로 아무런 차이가 없을까요?

이 글에 대한 댓글이 총 2건 있습니다.

date도 now()로 입력처리 하면됩니다.

이성준님이 2008-12-12 16:25에 작성한 댓글입니다. Edit

살짝 통계틱한 문제로 보입니다.

 

range scan이 발생할 것으로 보이는데, reg_date에 대한 index가 clustered index가 아니라면 경우에 따라서는 index가 차라리 없는 편이 나을 수도 있습니다.

 

 

실시간으로 data를 뽑는다면 table 사용자들이 짜증을 낼 상황이 발생합니다.

 

추천드리는 방법은 어차피 과거의 data는 변경될 일이 없으니 통계용 테이블을 만들어서 매 시간 (group by도 필요없이 그냥 where로 끝내는) 오늘 등록된 data만 수집해서 오늘짜 data에 갱신하는 방법이 좋습니다.

 

clustered index가 된다면 DATE가 훨씬 유리합니다.

 

우욱님이 2008-12-13 15:03에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
27925mysql 쿼리 결과 중에서 Warnings
마땅해
2008-12-12
4634
27924쿼리문이 안돌아가네요~ [6]
한 석
2008-12-12
4167
27922쿼리 작성 도움 부탁드립니다. [1]
로민건
2008-12-12
4325
27921date와 timestamp 중에서 어느 쪽 인덱스가 유리할까요? [2]
다라나
2008-12-12
6182
27920sql 작성에 대한 문의 입니다. [3]
2008-12-12
4497
27919특정필드의 값이 한글인지 영문인지...?? [1]
김한수
2008-12-12
4425
27917명령어 질문이에요.. [1]
고릴라
2008-12-11
4099
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다