![]() |
|
||||||||
경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지 |
|
관계형 데이터베이스의 핵심은 데이터를 테이블형태로 구성하는것이죠..
그래서 님이 말씀한내용 즉 데이터가 무한대(!)로 늘어날경우 인덱스같은 것도 답은 되겠지만 아애 파티셔닝하는것도 근본적 답이될 수있읍니다.. 그러나 문제는 어떤룰로 쪼갤것인가 이고요 이는 업무에따라 다를수 있읍니다. ms는 2005버젼부터 본격(!)적인 파티션을 지원하다고 합니다.. 광고보니 건물에다 건전지 넣는 그림이나오더군요.. 꺼꾸로말하면 이전버젼은 그리 좋은 성능은 아니였다는 애기도 됩니다.ㅎㅎ 이제 오라클은 그리드로 갑니다.. 데이터를 머쉰단위로도 쪼개서 관리할수 있도록 하겠다... 뭐 이거죠.. 결론적으로 쪼개는 것에 한표!! 인덱스에 서브쿼리를 응용하면 수십억 디비라도 0.1초 안에 결과를 낼 수 있습니다.
order00001 처럼 의미없이 order라는 영문자를 붙여서 검색 결과를 떨어뜨릴 필요는 없죠. 검색 속도는 숫자를 따라올게 없으므로 그냥 숫자로 하는게 최고 입니다. PK를 (날짜*100000000+시퀸스)로 잡고 2007년 07월 23일자 검색한다면 2007072300000000~2007072399999999 까지 검색하면 되겠죠. 이때 최신 정보가 아래쪽에 위치하므로 맨 위로 올린다고 order by desc 쓰면 쿼리 속도가 엄청나게 저하됩니다. 그러므로 실제 디비에 저장되는 값은 NOT 연산을 해주거나 9999999999999999 에서 빼기를 한 결과값을 저장하면 최신 자료가 숫자가 더 낮아지기 때문에 알아서 소트가 됩니다. 대충 이런 식으로 디비 퍼포먼스를 끌어올릴 수 있죠. 엔터프라이즈급 RDBMS는 1억건의 디비는 큰 편도 아닙니다. 대신 그만큼 설계의 중요성이... -_-;; 관련 글 리스트
|
Copyright © 1999-2015, borlandforum.com. All right reserved. |
용량이 매우 커져도 인덱스만 잘 걸어주민 검색 속도는 그다지 떨어지지 않습니다.