테이블에 들어가는 정보는
1. 게시물id (pk)
2. 글쓴이id
3. 제목,내용
4. 쓴날짜
5. 게시판id
6. 카테고리id (0부터 12까지있는데 자료의 절반 정도가 0, 나머지의 절반은 1, 그 나머지가 2~12)
7. 권한 (0부터 4까지)
이렇게 있고
select의 where에 들어가는 조건은
제목과 내용 빼고 다른 필드들의 단독 또는 조합입니다.
이런 경우에는 제목, 내용을 제외한 모든 필드에 인덱스를 걸어주어야 하나요?
현재는 레코드가 250만건정도 들어가있고 데이블 크기가 1기가 정도 됩니다.
현재는 글쓴이id와 게시판id에만 index를 걸어주었는데,
쓴날짜, 카테고리id, 권한 필드에도 인덱스를 걸어주어야 할까요?
한 테이블에 인덱스를 많이 걸지 말라는 글을 본 것 같아서 걱정이 됩니다.
인덱스 파일도 엄청 커지는데 상관 없을런지요..
그리고 '권한'필드 같은 경우 0부터 4까지밖에 없어서 인덱스를 걸어주는게 별 의미가 없을 것 같기도 하구요..
또 문제는 페이징을 어떻게 해야 할지 전혀 감이 안 잡힌다는 것입니다. ([1] [2] [3] .... [3424] 이런거요)
현재 게시판 수는 약 만개정도 있고 각 게시판에 게시물이 평균 250개정도 있습니다.
그래서 게시판별로 볼때는 where절에 게시판id를 넣어서 인덱스를 탄 후에 limit a, b를 써서 가져와도 무리가 없는데요
모든 게시물을 한번에 볼때가 문제입니다.
권한이 0인것만 보기.를 하면 약 150만건정도 나오는데, 이걸 limit a,b 쓰자니 뒤페이지로 갈수록 답이 안 나오더군요 -_-;
구글링을 해보니 where 와 limit a 의 조합으로 하라는데 그런 방식으로는 '다음페이지로 이동'은 할 수 있어도
2828번째 페이지로 이동. 이런건 불가능하지 않나요?
|