WinNT에서 MySQL(3.22.34-shareware)을 사용하고 있습니다.
CPU:INTEL-450, 메모리:64M입니다...
그런데 문제는 데이타가 많아지면 SELECT문의 속도가 굉장히 늦어집니다.... 예를 들어서 해당건수가 1만개면 3분이상을 기다려야 한다는 것이죠...
그래서
JOIN_BUFFER=2M,
KEY_BUFFER=16M,
SORT_BUFFER=4M,
RECODER_BUFFER=1M로 변수값을 설정하였으나 결과는 마찬가지입니다...
이외에 다른 변수의 SETTING이 더 필요한 것인가요???
아래의 SELECT문은 실제로 사용하고 있는 것입니다...
꼭 답 좀 주세요...
SELECT b.req_level,
b.req_seq,
b.parent_seq,
b.msg_code,
b.hit_count,
b.subject ,
b.contents,
b.user_id,
b.attach_flag,
b.reg_date,
u.user_name ,
di.menu_code,
d.dep_name,
c.cate_name
FROM BOARD_MSG_STB b,
BOARD_MSG_DTB di,
USER_MTB u,
DEPART_MTB d,
CATEGORY_MTB c
WHERE b.del_flag = 0
AND di.del_flag = 0
AND di.menu_code = 8
AND b.msg_code = di.msg_code
AND b.user_id = u.user_id
AND u.dep_code = d.dep_code
AND b.cate_code = c.cate_code
AND ( (
b.open_public_type = 0
OR ( b.sec_dep_flag = 1 AND b.msg_code IN ('2000090212051229358','2000090212293027524','2000090212312632344' ))
OR ( b.sec_person_flag = 1 AND b.msg_code IN ('2000090212051229586'))
OR ( b.sec_group_flag = 1 AND b.msg_code IN ('2000090212051229323','2000090212051229234'))
)
OR ( b.user_id = 'ddd')
)
AND (
b.applicat_type = 1
OR ( b.applicat_type = 0 AND b.slevel_code <= 10)
OR ( b.user_id = 'ddd')
)
ORDER BY di.msg_seq DESC, b.req_seq LIMIT 0,10;
또 한가지 질문은 ORDER BY절에 LIMIT를 썼을 경우에 쿼리문의 속도에 어느정도의 영향을 미치는지 입니다....
그럼 답변 기다리겠습니다...
|