100만건이 넘는 데이터의 카운트를 조정하려할때,
그누보드 게시판 관리자페이지에 보면,
해당게시판의 카운트를 조절하는 부분이 있습니다.
기존방식으로 하면 다소 느릴 수 있는 것을 최적화 해보았습니다.
파일 : /adm/board_form_update.php
라인 : 207 라인근처 ( // 글수 조정 ) 주석 아래입니다.
변경전
// 글수 조정
if ($proc_count) {
// 원글을 얻습니다.
$sql = " select wr_id from $g4[write_prefix]$bo_table where wr_is_comment = 0 ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
if ($proc_count) {
// 원글을 얻습니다.
$sql = " select wr_id from $g4[write_prefix]$bo_table where wr_is_comment = 0 ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
// 코멘트수를 얻습니다.
$sql2 = sql_query(" select count(*) as cnt from $g4[write_prefix]$bo_table where wr_parent = '$row[wr_id]' and wr_is_comment = 1 ");
$row2 = sql_fetch_array($sql2);
$sql2 = sql_query(" select count(*) as cnt from $g4[write_prefix]$bo_table where wr_parent = '$row[wr_id]' and wr_is_comment = 1 ");
$row2 = sql_fetch_array($sql2);
sql_query(" update $g4[write_prefix]$bo_table set wr_comment = '$row2[cnt]' where wr_id = '$row[wr_id]' ");
echo ".";
if ($i%50==0) { echo "<br/>"; flush(); }
}
mysql_free_result($result);
}
echo ".";
if ($i%50==0) { echo "<br/>"; flush(); }
}
mysql_free_result($result);
}
변경후
// 글수 조정
if ($proc_count) {
// 원글을 얻습니다.
$sql = " select a.wr_id,count(b.wr_parent) as cnt from $g4[write_prefix]$bo_table a, $g4[write_prefix]$bo_table b where a.wr_id=b.wr_parent and a.wr_is_comment=0 group by a.wr_id";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
if ($proc_count) {
// 원글을 얻습니다.
$sql = " select a.wr_id,count(b.wr_parent) as cnt from $g4[write_prefix]$bo_table a, $g4[write_prefix]$bo_table b where a.wr_id=b.wr_parent and a.wr_is_comment=0 group by a.wr_id";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
sql_query(" update $g4[write_prefix]$bo_table set wr_comment = '$row[cnt]' where wr_id = '$row[wr_id]' ");
echo ".";
if ($i%50==0) { echo "<br/>"; flush(); }
}
mysql_free_result($result);
}
echo ".";
if ($i%50==0) { echo "<br/>"; flush(); }
}
mysql_free_result($result);
}
댓글 9개
14년 전
멋집니다
백만건이 아니라 몇 만건만 되어도 부담 스러운데...
백만건이 아니라 몇 만건만 되어도 부담 스러운데...
커피는막심
14년 전
추천 드립니다. ^^
14년 전
멋집니다.
연후하은아빠
14년 전
추천드립니다.
xkingcode
14년 전
좋네요 !
group by a.wr_id desc 에서
desc는 어떤 의미로 있는건가요?
성능상 좋을 이유는 없을것 같아서요
group by a.wr_id desc 에서
desc는 어떤 의미로 있는건가요?
성능상 좋을 이유는 없을것 같아서요
14년 전
그렇네요. 아마 제가 저부분 테스트 하면서 100만건의 데이터가 타게시판 3개를 통합한거라, 순차적으로 잘나왔는지 확인할려고 끼워넣어두었던 겁니다^^;;
수정하였습니다!
수정하였습니다!
그누초보ㅠㅠ
12년 전
이 글 방법을 토대로 해봤는데 속도는 빨라졌습니다.
하지만 오류가 있는거 같네요. 카운트 조정을 하게 되면 코멘트를 작성하지 않은 글에 +1 코멘트 댓글이 달려있다고 뜹니다. 그 게시물을 들어가보면 코멘트를 단 사람은 없는데 말이지요.
어떻게 해야 하나요 ?
하지만 오류가 있는거 같네요. 카운트 조정을 하게 되면 코멘트를 작성하지 않은 글에 +1 코멘트 댓글이 달려있다고 뜹니다. 그 게시물을 들어가보면 코멘트를 단 사람은 없는데 말이지요.
어떻게 해야 하나요 ?
14년 전
좋은팁 감사해요
그누초보ㅠㅠ
12년 전
감사합니다^^
게시판 목록
그누4 팁자료실
그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.
나누면 즐거움이 커집니다.
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 3309 | 3년 전 | 1798 | ||
| 3308 | 11년 전 | 2087 | ||
| 3307 |
uPAmJ903
|
6년 전 | 4742 | |
| 3306 |
바른사나이
|
6년 전 | 3269 | |
| 3305 | 6년 전 | 12297 | ||
| 3304 | 7년 전 | 3699 | ||
| 3303 | 7년 전 | 3736 | ||
| 3302 |
지리산초보
|
7년 전 | 13588 | |
| 3301 |
sozet
|
8년 전 | 4897 | |
| 3300 |
sozet
|
8년 전 | 5962 | |
| 3299 |
sozet
|
8년 전 | 10855 | |
| 3298 | 8년 전 | 4008 | ||
| 3297 |
또치하우스
|
8년 전 | 4433 | |
| 3296 | 8년 전 | 11961 | ||
| 3295 |
또치하우스
|
8년 전 | 14978 | |
| 3294 | 8년 전 | 6016 | ||
| 3293 | 8년 전 | 5583 | ||
| 3292 |
|
9년 전 | 5309 | |
| 3291 | 9년 전 | 13673 | ||
| 3290 | 9년 전 | 5042 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기