묻고답하기
카페24에서 테이블 부하 및 게시판 작성시 작성중 메세지 표시 오래 걸림 문제
2013.04.27 15:08
오늘 카페 24에서 아래와 같은 문제에 대한 확인을 요청하여 질문합니다.
이틀전 카페24에서 테이블 부하가 간간히 생기게 되어 서버 이전을 완료하였으나
오늘 게시판 작성시 작성중 메시지 만 나오고 넘어가질 않아 확인이 필요하여 카페 24에 문의를 하게 되었네요.
카페24 메일 답변 ============================================================================
유선 안내드린데로 해당 테이블로 계속 발생되는 select 문을 확인 해 주시기 바랍니다.
SELECT * FROM `dragonpia_documents` as `documents` WHERE ( `module_srl` in (23248) and `status` in (''SECRET'',''PUBLIC'') ) and `list_order` <= 2100000000 ORDER BY `list_order` asc LIMIT 336, 48
============================================================================
카페 24의 의견이 위에 있는 Query가 간간히 발생하여 테이블 부하가 생긴다고 하네요..
이 소스는
\classes\db\queryparts\Query.class.php 에 있는 것 같구요.
/**
* Return where sql
* @param boolean $with_values
* @param boolean $with_optimization
* @return string
*/
function getWhereString($with_values = true, $with_optimization = true){
$where = '';
$condition_count = 0;
foreach ($this->conditions as $conditionGroup) {
if ($condition_count === 0) {
$conditionGroup->setPipe("");
}
$condition_string = $conditionGroup->toString($with_values);
$where .= $condition_string;
$condition_count++;
}
if ($with_optimization &&
(strstr($this->getOrderByString(), 'list_order') || strstr($this->getOrderByString(), 'update_order'))) {
if ($condition_count !== 0)
$where = '(' . $where . ') ';
foreach ($this->orderby as $order) {
$colName = $order->getColumnName();
if (strstr($colName, 'list_order') || strstr($colName, 'update_order')) {
$opt_condition = new ConditionWithoutArgument($colName, 2100000000, 'less', 'and');
if ($condition_count === 0)
$opt_condition->setPipe("");
$where .= $opt_condition->toString($with_values) . ' ';
$condition_count++;
}
}
}
return trim($where);
}
고수님들의 답변 부탁드립니다.