Background Image

FORUM

조회 수 15745 추천 수 0 댓글 5
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

안녕하세요.

 

문의사항이 있어서 글을 남깁니다.

 

기존에 마스터 테이블에 pk, 제목, 내용, 속성1~속성N... 이런 테이블(게시판은 아닙니다)이 있습니다.

 

이 경우에 내용 컬럼이 다른 컬럼에 비해서 양이 매우 크다고 할 경우에 마스터 테이블의 대부분(95% 이상)을 차지한다고 할 경우에

내용만 다른 테이블(pk, 내용)에 저장을 하게 되면 마스터 테이블 검색 속도가 향상이 되나요?

 

대부분의 페이지가 속성1~속성N을 사용하여 제목 리스트를 가져오는 쿼리로 이루어져 있고, 상세보기 페이지에서만 내용을 조회합니다.

 

마스터 테이블 조회쿼리가 풀스캔을 하지만 않으면 마스터테이블 크기와는 관계가 없는지 궁금합니다.

  • ?
    남재우 2010.06.09 01:59

    예. 좋은 방법입니다. 자주보는 테이블의 레코드길이가 짧은 것은 검색에 매우 유리합니다. 말씀하신 것처럼 키,제목 정도로 목록에 보여주는 정보 위주로 테이블을 구성하고, 상세보기에 해당하는 본문은 별도 테이블로 가는 것이 좋습니다.

    다만 하나의 테이블이(데이터관점에서) 두개의 테이블로 분리되므로 목록테이블과 상세보기테이블에 대하여 작성자,작성일자 등에 대하여 중복될 수 있는 데이터의 위치에 대하여 관심을 가지셔야 합니다. 분리하시고 목록보기시 조인하여 질의하면 의미는 반감합니다.

    목록정보에 두고, 상세보기시 목록을 조인하면 조인대상이 한건일터이니 도움이 될 것으로 보입니다.


  • ?
    종이 2010.06.09 02:58

    리스트에서 내용 일부를 가져오는 쿼리를 생각을 못했네요.

     

    select pk, 제목, 속성1... 속성 N, (select substring(내용, 100) from 내용 테이블 D where M.pk = D.pk) 내용
    from 마스터테이블 M
    where 속성N = ...

    위의 쿼리처럼 수정을 하게 되면 마스터테이블에 내용 컬럼을 두었을때하고 내용 컬럼만 별도로 분리해서 사용하는 경우하고

    차이점이 없는건가요?

  • ?
    남재우 2010.06.09 03:17
    XpressEngine

    안녕하세요.

    서브 질의를 사용하시게 되면 질의 결과 개수만큼 서브질의가 수행되게 되므로 그것보다는 인라인 뷰를 활용하시는 것이 좋겠습니다.

    select 제목, substr(본문, ...)

    from (select 키, 제목 from 목록테이블 where rownum between 1 and 20) as t(키,제목), 내용테이블

    where t.키 = 내용테이블.FK

    where rownum 부분은 CUBRID의 페이징방법입니다.

     

    이조차 성능에 문제가 될 수 있다면, 본문이 거의 수정이 되지 않는다는 전제하에 목록에 보이는 본문의 일부를 아예 목록테이블에 중복시킬 수 도 있을 것입니다.

  • ?
    종이 2010.06.09 18:32

    안녕하세요.

     

    항상 빠르고 상세한 설명까지 감사합니다.

     

     

    현재 운영하는 사이트가 언론사라서 한번 올라간 기사는 내용 수정이 거의 없습니다.

     

    그리고 내용 수정하는 페이지는 관리자에 있는 하나의 메뉴에서 모두 이루어지기 때문에 마스터 테이블에 내용중 첫부분 일부(200byte)를 저장하는 방식으로 하는게 좋을꺼 같은데요, 그렇게 되면 내용 테이블 조회는 뷰페이지에서만 조회하게 될꺼 같습니다.

     

    그리고 내용 수정이 될 경우에는 마스터 테이블의 내용, 내용테이블의 내용을 같이 수정해 주는 로직으로 프로그램을 변경할까 합니다.

     

     

    그리고 pk가 yyyymmddNNNN(일련번호) 형식이기 때문에 내용 테이블을 파티션 테이블의 레인지 분할을 이용하여 월별로 분할하게 되면 성능 향상이 있을거 같은데요.

     

     

    이 방법이 맞는지 한번만 더 확인해 주시면 감사하겠습니다.

  • ?
    남재우 2010.06.10 05:15

    안녕하세요.

    금일 출장 관계로 이제서야 확인이 되었습니다.

    검색위주의 시스템이라면 잘아시겠지만 일정 부분 데이터의 중복은 성능을 위해서 충분히 고려해볼 가치가 있는 일입니다.

    분할 부분은 사용하시는데 특별한 문제는 없습니다. 다만 분할키로서 필드를 그냥 사용하시는 것이 성능상 좋습니다. 즉, 분할 조건을 수식으로 하지말고 필드를 그냥 이용하는 것입니다. 해당 테이블에 접근할때마다 분할키에 대한 평가가 이루어지기 때문입니다.

    따라서 월별로 분할을 한다면 yyyymm 을 저장하는 필드를 추가하여 관리하고 이 값을 분할키로 하여 구성하는 것이 좋습니다.

     

    현재 성능 관점에서 분할 자체가 기대만큼 좋은 성능을 주지는 못하고 있습니다. 따라서 기사종류별, 기간별로 테이블 자체를 별도로 하시는 것이 좋을 것 같습니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 20 admin 2024.04.23 131765
281 큐브리드의 궁금한점 1 초천재 2010.07.01 9976
280 큐브리드의 이전 버전 다운로드에 대해서 1 DiaBlue 2012.09.13 8100
279 큐브리드의 적정 데이터 수는 얼마나 되는 것인지 궁금합니다.. 1 스마트 2011.01.08 10501
278 큐브리드의 테이블 생성일시, 수정일시 등을 확인 할 수 있는 쿼리를 알고싶습니다. 1 풍류인생 2021.06.22 4809
277 큐브리드의 특징중 교착상태 자동해결이 알고 싶습니다. 1 끌레도르 2015.06.22 7247
276 큐브리즈 2008 R4.0 트랜잭션 에러 1 이용훈 2014.03.20 11137
275 큐브릭 펜타호와 연계하는 방법 궁금합니다. 야밤비 2016.03.16 10100
274 큰 자리수 연산 문의 1 초콜릿75 2013.08.01 13102
273 클라우드 환경에서 cubird server 비정상 동작함. 6 맘마마마 2019.04.19 4560
272 클라우드 환경에서 데이터베이스 추가 관련 1 디콘플러스 2022.11.29 4609
271 클라이언트 원격지 접속 4 secret 차차오 2015.02.03 12
270 클라이언트에서 원격지 DB로의 접속이 되지 않습니다... 9 김동진81 2009.10.08 17414
269 타 큐브리드 db에 insert 하려면.. 1 백수인 2022.10.28 4284
268 타서버의 풀백업 파일을 임포트 하는 방법이 뭔가요? 2 취우다 2017.04.27 8445
267 타입비교에 대해서 1 daltago87 2010.09.16 11184
266 테스트 서버와 운영서버에 COUNT(*) 쿼리 실행 속도 차이 문의 1 종이 2019.12.29 4282
265 테스트 한 결과 때문에 질문글 올립니다... 2 secret 반짝이 2011.05.24 17
264 테이블 Drop 시킨후 컬럼 추가하여 생성시 소팅문제 4 지니보이 2010.07.03 12091
263 테이블 alter 시 오류 메세지 1 김성일컴퍼니 2013.08.06 9888
262 테이블 가져오기 수행방법 좀 알려주세요 1 file 이야기 2021.09.23 4086
Board Pagination Prev 1 ... 194 195 196 197 198 199 200 201 202 203 ... 213 Next
/ 213

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales