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
운영게시판
최근게시물
PostgreSQL Q&A 6210 게시물 읽기
No. 6210
데이터 삭제에 관하여
작성자
가시고기
작성일
2005-07-07 11:04
조회수
2,352

안녕하세요..

테이블에 데이터가 수십만건에서 수백만에 이르게 쌓여있습니다.

그래서 속도도 느려지고 그런 관계로.. 데이터를 시간이 경과한 것을

찾아서 삭제를 하고자 합니다.

 

그런데 삭제를 할 때 지난 과거 데이터를 찾아서 그 이후의 것만

일괄적으로 지우고 싶습니다.. 그리고 또한 어느 일정 기간의 날짜 데이터를

삭제 하고 싶을땐 어떻게 하면 되는지 알려주시면 고맙겠습니다..

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

그 테이블에 날짜 정보를 가지고 있는 컬럼이 없다면... 그리고 다른 테이블과 join해서라도 날짜를 유추할 수 있는 방법이 없다면... 특정 날짜 범위를 조건으로 삭제하는 것은 어려울 것 같네요.

날짜가 아닌 다른 조건으로.. 예를 들면 전체 자료량의 상위 몇 %를 지운다는 식으로 지우는 정책을 생각해 보시죠.

박성철(gyumee)님이 2005-07-07 13:52에 작성한 댓글입니다.

테이블에 timestamp timestamp default now() 처럼 생성시각을 나타내는 컬럼이 있었으면 쉬워질텐데 아쉽게도 없는 상황이네요...

 

지금이라도 timestamp 컬럼을 넣어놓고 작업하시는 것이 좋겠네요.

 

delete from table where timestamp between '2005-5-1' and '2005-6-1' and timestamp not null;

최정대(whitekid)님이 2005-07-07 14:25에 작성한 댓글입니다.

답변 감사합니다..

 

참고로 컬럼에는 날짜를 디폴트로 가지고 있는 timestamp가 있습니다. 여러분의 답변 정말 고맙습니다.

많은 도움이 되었습니다. ^^

가시고기님이 2005-07-08 00:28에 작성한 댓글입니다. Edit

헌데 문제는 자료의 삭제 자체야 간단하다고 해도

정말로 자료를 지워도 문제가 없을까요...^^;

 

자료가 너무 많아서 느려지는 것도 문제이긴 하지만

일단은 다른 테이블로 복사를 해 백업을 해둔 상태에서

삭제해본 다음 운영해보는 것은 어떠실런지요?

 

아님...스크립트 하나 만들어서 일정기간 지난 자료는

다른 테이블로 복사 후 제거하는 방안도 있을 수 있고요...^^;

김영호(icepage)님이 2005-07-08 17:05에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6215[급한 질문] bigint 형에 대해서 [2]
가시고기
2005-07-12
2235
6213원격접속 설정.. [3]
김종섭
2005-07-11
2487
6211다국어 페이지 제작시 한글 깨짐현상 [2]
정민규
2005-07-07
2757
6210데이터 삭제에 관하여 [4]
가시고기
2005-07-07
2352
6209대량 테이블을 생성하면 어떤 영향이 있을까요? [2]
마이웨이
2005-07-07
2009
6208substring 에서 posix 사용하여 문자자르기 질문입니다. [4]
엔니오
2005-07-06
2617
6207데이타 하루 250만건 처리 [5]
전해자
2005-07-06
3058
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다