채택완료

그누보드 포인트 순위 mysql 점유율 관련

2019-02-07 (목) 15:29:31 2,878
Copy
<?php
$sql_common = " and mb_id != '{$config['cf_admin']}' "; 
$rank_rows = 15; //출력 수 
$sql = " select * from {$g5['member_table']} where mb_point > '{$row['mb_point']}' {$sql_common} order by mb_point desc, mb_today_login desc limit {$rank_rows} "; 
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
    $rank = number_format($i + 1);
    //$rank_name = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
    $rank_name = $row['mb_nick'];
    $point = number_format($row['mb_point']);
    if ($rank == 1) {
        $rank_bg = ' rank_bg1';
    } else if ($rank == 2) {
        $rank_bg = ' rank_bg2';
    } else if ($rank == 3) {
        $rank_bg = ' rank_bg3';
    } else {
        $rank_bg = '';
    }
?>
    <li><span class="rank_bg<?php echo $rank_bg; ?>"><?php echo $rank; ?></span><?php echo $rank_name; ?><span class="rank_point"><?php echo $point; ?></span></li>
<?php } ?>

메인에 접속시 마다 해당 쿼리를 실행해서

mysql cpu 점유율이 60~70%가 넘어갑니다

그누보드의 캐쉬를 활용할 방법이 없을까요?

|

답변 1개

채택된 답변
+20 포인트

만인 g5_member 의 mb_point에 인덱스 안걸려있으면 

아래글 확인하시어 

https://jojoldu.tistory.com/243

의 

"where salary * 10 > 150000;는 인덱스를 못타지만, where salary > 150000 / 10; 은 인덱스를 사용합니다."

처럼 mb_point 에 인덱스 추가하시면 속도향상효과 있을것 같습니다.

답변을 작성하려면 로그인이 필요합니다.