개발 Q&A

제목 php 게시판 페이징 에 관하여
카테고리 DB
글쓴이 강남원 작성시각 2017/11/14 18:37:38
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 434   RSS

안녕하세요 ?

 

개발중 문득 궁금한점이 생겨서 의견을 얻고자 질문을 남깁니다.

 

정규화가 잘되어 잘 쪼개진 테이블이 많이 있는 DB가 있습니다.

 

그리고 웹어플에서 이 테이블들을 조인해서 데이터를 페이징해서 게시판의 형태로 보여줘야하는데요

 

이렇게 되었을때 게시판에서 페이징을위해서 처음에 총건수가 몇건인지 계산하기위해서 관련된 테이블을 다 연결해서

최종 건수를 구하는데요 여기서 질문입니다.

 

패턴1.

관련된 테이블을 다 연결하여 총 건수 를 구한다.

 

관련된 테이블을 다 연결하여 lmit 를 사용하여 한페이지에 표출할 분량만 들고온다.

 

패턴2

관련된 테이블을 다 연결하여 건수가아니라 실제 총 데이터를 모두 들고온다 

 

모든데이터를 제이슨 형태로 자바스크립트에 모두 넘긴다

 

자바스크립트 상에서 페이징을 구현한다.

 

패턴1을 실행하면

총건수를 구할때 , 다시 표출할 분량을 들고올때 

2번 의 select 가 필요해집니다.

 

개인적으로 패턴 2번이 퍼포먼스가 좋을거같은데요

 

어떻게 생각하시나요

 

 

 다음글 전역 변수 사용방법에 대해 질문드립니다 (1)
 이전글 포워딩 질문드립니다. (4)

댓글

kaido / 2017/11/14 18:47:10 / 추천 0

패턴1번 이요.

http://cikorea.net/bbs/view/lecture?idx=7097&page=1&view_category=&lists_style=

DB 쿼리 부분에 꿀팁 있습니다 ㅎㅎ

 

패턴2번은 특별한 이유가 없다면 보통 전체 데이터를 가져오거나 하지 않습니다.

일부러 나눠서 데이터를 가져와서 부하를 최소한으로 하기 위해 페이징을 나누는 것인데... 전부 다 들고 오면 의미가 퇴색됩니다.

변종원(웅파) / 2017/11/14 19:40:32 / 추천 0
2번은 데이터가 많아지면 느려질 수밖에 없습니다.
한대승(불의회상) / 2017/11/14 21:12:47 / 추천 0
데이터가 정기적으로 삭제되고 3000건 이내라면 2번
강남원 / 2017/11/15 09:57:12 / 추천 0

한대승 님과 제가 비슷한 생각을 가지고 있는거 같은데요

패턴 1번은 잘생각해보면 테이블들을 연결하는 작업 을위해 결국 모든데이터에(인덱스된) 매칭작업을 총 2회(총건수구할때,실제가져올때) 하게되는데

총건수 구할때 캐싱이 되서 실제가져올데이터가 빨리 나와도 결국2번의 함정있죠

 

그에반변 패턴2를 언급한건

제가 옛날에 openlayers 라는 라이브러리를 사용할때 위도 경도 정보를 5만건 자바스크립트에 올려봤는데 의외로 매끄럽게 움직이길레 드려보는 질문이에요~ 

 

변종원(웅파) / 2017/11/15 10:02:09 / 추천 0

강남원/ 건수에 대한 언급이 없기 때문에 일반적인 상황에서를 생각하고 답변을 합니다.

건수가 작다면 1회만 처리하고 자바스크립트 그리드에서 페이징처리하는 것도 나쁘지 않습니다.

 

강남원 / 2017/11/15 10:58:02 / 추천 0
유익한 의견 감사합니다.