database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 3448 게시물 읽기
No. 3448
# Re: # 쿼리문 속도???
작성자
ㅈㄷㄱㅈㄷ
작성일
2000-09-05 16:26
조회수
1,295

꾸뻑

 

님의 환경설정은 적절한 조치 입니다.

문제는 너무 많은 table join의 결과입니다.

보통 DB 가 data를 만들어 가져 올때 nature join한뒤에

거기서 where 조건대로 검색해서 가져 옴니다.

table 2개에서 한 1만개 씩 있을경우 1만 * 1만 개의

임시 table을 만든후 where 조건대로 선택함니다.

 

그러니 님의 5개 join은 memory 64에서는 무리가 됨니다.

(저의 경험으로 절대 해결하기 힘듬 )

 

기본적으로 1만건이상을 다룰려면 256MByte이상이 되어야 함니다.

그 이하일경우 index buffer가 너무 작기때문에

hdd와 swap을 해가면서 작동 하므로 속도가 현져하게 떨어짐니다.

( 대부분 이 swap 때문에 서버의 속도가 현저히 떨어짐

이것은 table설게시에 db사용 memory의 적절한 계산을 하지 못한결과임)

 

1. 우선 1차 적으로 temp table을 만들어 그곳으로 이동시킨후

헌꺼번에 처리하기 -> 현저히 빨라짐니다. ( join을 피할수있음 )

 

2. 새로운 최적화된 table을 만들서 새로 작성 -> 좋은 방법

새로 프로그램 해야함으로 시간이 많이 걸림

 

3. 지금 그대로 하되 memory를 적절히 늘리는 방법 -> 돈이 많이듬

 

추천하는 방법은 2번과3번을 동시에 하셔야 차후에도 안정적인

운영이 될것 같습니다.

 

꾸뻑.

 

 

 

 

 

 

> 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를 썼을 경우에 쿼리문의 속도에 어느정도의 영향을 미치는지 입니다....

>

> 그럼 답변 기다리겠습니다...

[Top]
No.
제목
작성자
작성일
조회
3447# 두대의 MySql서버간의 데이타 동기화는 어떻게?
이정준
2000-09-05
1099
3449┕># Re: # 두대의 MySql서버간의 데이타 동기화는 어떻게?
ㅁㄴㅇㅁㅇ
2000-09-05 16:33:32
1213
3453 ┕># Re: # Re: # 두대의 MySql서버간의 데이타 동기화는 어떻게?
문태준
2000-09-05 21:35:23
1523
3461  ┕># Re: # Re: # Re: # 두대의 MySql서버간의 데이타 동기화는 어떻게?
이정준
2000-09-06 12:02:48
1266
3482   ┕># Re: # Re: # Re: # Re: # 두대의 MySql서버간의 데이타 동기화는 어떻게?
문태준
2000-09-06 21:18:08
1574
3445mysql 에서 데이타를 지울때..
정찬민
2000-09-05
964
3456┕>Re: mysql 에서 데이타를 지울때..
정재익
2000-09-06 07:37:22
958
3444[질문](fifth님께 감사를 표하며)가장 오버헤드가 많이 걸리는 문장은..
이희석
2000-09-05
1046
3441# 쿼리문 속도???
정현택
2000-09-05
1049
3443┕>Re: # 쿼리문 속도???
정재익
2000-09-05 11:32:43
1107
3448┕># Re: # 쿼리문 속도???
ㅈㄷㄱㅈㄷ
2000-09-05 16:26:25
1295
3440# mysql 과 vb 연동시에 odbc를 사용하지 않고 연결할수 있나요?
오석호
2000-09-05
1048
3446┕>Re: # mysql 과 vb 연동시에 odbc를 사용하지 않고 연결할수 있나요?
최영봉
2000-09-05 13:59:01
1338
3439[질문]부팅시 mysql daemon ended가
이승언
2000-09-05
890
3442┕>Re: [질문]부팅시 mysql daemon ended가
정재익
2000-09-05 11:27:33
1166
3435쿼리문..............
신성수
2000-09-05
1019
3437┕>Re: 쿼리문..............
정재익
2000-09-05 09:05:16
956
3457 ┕>Re: Re: 쿼리문..............
신성수
2000-09-06 07:39:59
983
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다