그냥 무턱대고 튜닝해 달라고 하는데요..

· 16년 전 · 1540 · 7
속도올리기 위해 튜닝 튜닝하는데 과연 무엇일까요..

말 그대로 사이트 로딩속도를 좀 더 빠르게 해보는 작업인데..

기본 골격은 내가 필요한 필드만 뽑아 오자는 겁니다.

기본구조는

select (*)  <<전체 필드에서 뽑아오라는 명령이 있습니다..

select (wr_id, wr_nane, wr_subject)  << 이런식으로 한다면

전체를 검사해서 뽑아 오는 시간보다 3개만 빠르게 검사하는것이 빠르겠죠...

예문으로 최신글은 일반적으로 타이틀, 공지사항, 제목, 제목길이, 코멘트, new아이콘 정도만 사용하는게 대부분입니다.
그렇다고 한다면 lib 관련파일에서

1번 - $sql = " select * from $g4[board_table] where bo_table = '$bo_table'";
2 번 - $sql = "select bo_table, bo_notice, bo_subject, bo_subject_len, bo_new, bo_use_comment, from $g4[board_table] where bo_table = '$bo_table'";

1번보다는 2번식으로 처리하는게 보다 효율적입니다..
이러한 선행작업을 하는게 튜닝입니다..

보다 빠른 로딩을 위해서는 본인이 원하는 모든 곳의 자신의 맞는 튜닝이 필요합니다~^^

개인적인 생각으로는 무턱대고 홈피제작전에 튜닝해서 주세요 하면 좀 곤란하다고 생각합니다.
제작후 어느정도 운영해보면 기본 골격이 나오는데 그때 튜닝을 해야 하지 않을까 합니다..

그냥 지나가다가 생각나서 몇글자 적어 봅니다..
|

댓글 7개

위 차이가 그렇게 큰지요? 쿼리개수 하나 줄이는게 훨씬 크지는 않나요? by 초보

후아빠님,, 사이트 늦어지는 이유가
디비접속과 php구문과 html,script구조 or 양 을 따졌을때

각 비중이 얼마나 될까요...?

제생각에는
디비 60
php for구문 등 20
html 테이블구조나 파일자체의 양 20

정도일거 같은데.......
예문으로 최신글 << 이렇게 적엇는데요

직접 해봤기때문에 차이가 분명히 있습니다..

뭐 컴터도 좋고 서버도 좋은 상황이라면 별문제 없겠지만요...

전체를 튜닝하고자 한다면 이것만 있는게 아니겟죠..
무작정 튜닝해달라고 하시는 분들께 이정도나마 알고 계시라는 건데요^^
select 를 할때 * 와 필드를 지정해서 불러오는 속도의 차이는 데이터가 많을수록 차이가 커지게 됩니다. *를 사용하는 버릇은 버려야 하는게 맞아요.

요즘 컴퓨터 사양이 좋아져서 for문 html은 많이 안따지고.. 대형 사이트 경우는 따지기는 하지만 대부분 DB문제가 있으면 사이트가 눈의띄게 느려집니다.
빙고빙고~
콕!! 집어 주자는 거죠!
얼마전 다른 회사에서 개발했던 사이트를 저희 회사에서 유지보수 하게 되었는데

회원수가 2만명 정도 되는 포털사이트인데 DB 부하가 상당하더군요.

소스를 딱 열어보니 거의 모든 쿼리가 select * 로 되어있고

통계성 데이터는 모두가 실시간 쿼리... -___-

서버부하 무시하고 무작정 결과만 나오게 되어 있더군요. ^^ 커넥션 무지 많구요...

첫페이지 로딩되는데 평균 7초 정도.... -___-

이거 튜닝하느라 아주 Dog고생 했습니다. 소스도 거의 하드코딩 되어있어서

찾아다니느라 미칩니다. ^^

지금은 거의 마무리 단계지만 아직도 숨은 코드들이 많아서.... ^^

여튼 select * 이렇게 눈에 딱 보이는 부분만 수정해도 많은 속도 개선을 보더라구요. ^^
예문으로 최신글을 예로 들으셨길래, 추가로 꼭 해야할것도 말씀드려봅니다.

select 할때 꼭 필요한 필드만 가져오는것도 좋은데, 그이후 그누보드의 get_list()함수도 문제가 많습니다.

get_list() 가 게시판 list 를 보여주는 것이 주 용도인데, 이걸 최근글에서 사용하기 때문에 불필요한 코드가 많이 있습니다.

글제목, 최근코멘트 여부, 코멘트 갯수, 등록날짜, 게시물 링크 이정도만 처리하는 get_list()를 꼭 별도로 만들어서 운영하세요.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기
🐛 버그신고