모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    사이키님의
    개인페이지입니다
    가입 : 10-09-25
    방문 : 1381회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_3960
    작성자 : 사이키
    추천 : 0
    조회수 : 597
    IP : 222.112.***.145
    댓글 : 2개
    등록시간 : 2014/06/13 16:29:04
    http://todayhumor.com/?programmer_3960 모바일
    이틀전에 여기서 조언을 얻어서 정리한 sql 쿼리 입니다.
    <div><br></div> <div><br></div> <div>개발환경은 php , MySql 5.1.45 입니다.</div> <div><br></div> <div>우선 기본 베이스 테이블이 2개 이고</div> <div>1번째는 게시물 테이블(g_board)</div> <div>2번째는 첨부파일 테이블(g_attach) 입니다</div> <div><br></div> <div>워낙 연동하는 다른 테이블들이 많아서 view 테이블을 만들었었는데</div> <div>게시물 한개당 최대 첨부 파일 갯수를 6개로 제한 해 두고 </div> <div>처음 쿼리를</div> <div><br></div> <div>create view view_etc_tbl AS</div> <div>select idx, ....... , </div> <div>(select CONCAT(attach_path,'/',attach_savename) from g_attach </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>where b.idx = board_idx order by attach_idx asc limit 0, 1) as att_file1,</div> <div>(select CONCAT(attach_path,'/',attach_savename) from g_attach </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>where b.idx = board_idx order by attach_idx asc limit 1, 1) as att_file2,</div> <div>.......,</div> <div>from g_board order by idx desc</div> <div>(다른 테이블들 과의 Join 들은 제외하고 주요코드만 정리한것입니다.)</div> <div><br></div> <div>뭐 이런식으로 짜서 view_etc_tbl 이란 뷰테이블을 만들었습니다.</div> <div>그런데 저게 내부에서 select 문이 6번 이상을 돌게 되면서 </div> <div>데이터 양이 많지 않음에도 불구하고</div> <div>쿼리한번 호출하는데 2초 이상이 걸리게 되더라구요</div> <div>(저 6개의 select문만 제거 하면 실행시간이 0.1초대로 줄어듭니다.)</div> <div><br></div> <div>그래서 상기 뷰테이블을 조인문으로 바꿔서 새로이 만들려고 시도 했으나 </div> <div>MySql 에서는 뷰테이블을 만들시에 변수도 사용할 수 없고, </div> <div>또한 결정적으로 Sub쿼리를 쓸수 없게 되어있더라구요</div> <div>그냥 sql 쿼리문으로 돌리면 잘 돌아가는데 이걸</div> <div>뷰테이블로 만들려구하면 주구장창 </div> <div>You have an error in your SQL syntax:~~~</div> <div>뭐 이런 애러가 떠서 결국 중도에 포기 하고 말았습니다.</div> <div>(꼼수로 서브쿼리에 들어갈 select 문을 view 테이블로 만들고 그</div> <div>view 테이블을 참조해서 view 테이블을 만들려고</div> <div>시도했는데 그것도 MySql에선 안되더군요... 내 오라클을 돌려줘..ㅠㅠ)</div> <div><br></div> <div>결국엔 뷰테이블 사용을 포기 하고 쿼리문에서</div> <div>우선 </div> <div><br></div> <div>CREATE VIEW gb AS </div> <div>select </div> <div>max(f.board_idx) AS board_idx,</div> <div>max(f.attach_path) AS attach_path,</div> <div>group_concat(f.attach_savename order by f.board_idx ASC separator '|') AS attach_savename</div> <div>from g_attach f group by f.board_idx;</div> <div><br></div> <div>로 gb라는 view 테이블을 만들고 그안에서 첨부파일이 포함된 폴더는 </div> <div>게시물 별로 같으니 그냥 한 컬럼에 통일하고 첨부파일명은 '|' 라는 구분자로 구분해서</div> <div>한컬럼에다 쭉 몰아넣어버렸습니다.</div> <div><br></div> <div>그다음에 include 되는 파일에서 </div> <div><br></div> <div>(SELECT</div> <div> b.idx as idx, .........,</div> <div> attach_path, attach_savename</div> <div> from </div> <div> (select idx, ........., from g_board as FB left outer join gb as GB On FB.idx = GB.board_idx order by idx asc) AS b)</div> <div> AS TTD </div> <div><br></div> <div> 라고 문자열 상수로 선언 해버리고 이전에 view_etc_tbl 을 참조하던부분을 선언된 상수로 바꿔버렸습니다.</div> <div> 그러고 나니깐 기존에 </div> <div> att_file1 ~ 6 의 컬럼에 나오던 부분을</div> <div> attach_path 컬럼에 파일이 저장된 폴더가 나오고 </div> <div> attach_savename 에 '|'로 구분된 파일명 6개가 나오게 했습니다.</div> <div> 결국엔 지금까지 view_etc_tbl 을 참조해서 att_file1~6까지 뿌려주던 php 파일 모두를 </div> <div> path와 savename 을 받아와서 구분자로 구분해서 하나로 합쳐주고 뿌려주게 바꿔야만 했는데요</div> <div> 이런 작업을 해주니깐 기존 view 테이블을 참조하는 php 파일의 로딩속도가 약 3~4초였었는데..</div> <div> 지금은 이미지 로딩까지 포함해서 0.7~0.8 초대로 체감속도가 확 달라졌습니다.</div> <div><br></div> <div>문제는 상수로 쓴 sql 쿼리문이 지금 제가 최대치로 줄여놔서 6줄이지만</div> <div>실제 코드에 들어간 코드는 한글에서 치면 A4용지 2장을 조금 넘는 </div> <div>어마어마한 길이의 쿼리문이 되어버렸다는거죠.....;;</div> <div>(저 상수에 앞뒤로 붙는 쿼리문 까지 합치면 쿼리문 길이가 그야말로 ㅎㄷㄷ)</div> <div>(난 이상하게 쿼리문이 길어지면 길어질수록 실행속도가 올라가더라는;;;)</div> <div><br></div> <div>뭐 저처럼 MySql 에서 게시물 리스트와 첨부파일이나 댓글리스트를 받아와서 한화면에 같이 </div> <div>뿌려주어야 할 일이 생기신 분들께 좋은 활용방안이 될수있을꺼라 생각해서 올립니다.</div> <div><br></div> <div>혹시나 해서 질문드립니다.</div> <div>저 위에 올린 쿼리문을 MySql에서 View테이블로 만들수는 정말 없는건가요....ㅡ.ㅜ</div>

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    47
    권혁 삼진!!!!!!!!!!!!!!!!! [4] 사이키 15/04/22 22:07 438 0
    46
    아... 권혁.. [2] 사이키 15/04/22 21:58 309 0
    45
    [본삭금] 오유 시스템 질문 [2] 사이키 15/04/15 22:10 23 0
    44
    사촌동생이 그린 메런 민호 원본 입수했습니다!!(이번껀 약 19) [5] 사이키 15/04/15 20:09 200 15
    43
    사촌동생이 그린 데드풀 [23] 사이키 15/04/15 17:21 401 54
    42
    사촌동생이 그린 그린랜턴.. [7] 사이키 15/04/15 15:29 160 13
    41
    헐.... 나나와 카오루를 레진에서 연재하네요... [2] 사이키 15/03/28 20:02 186 0
    40
    이상한 중국 프로그램이 자꾸 설치됩니다. [21] 사이키 15/03/18 20:50 132 0
    39
    삼성 조동찬 계약!!! [6] 사이키 14/11/26 19:18 169 1
    38
    mysql asp 연동 오류 질문입니다. [9] 사이키 14/11/19 16:16 43 0
    37
    하아... evo 널 어쩌면 좋니... [5] 사이키 14/10/10 13:33 152 0
    36
    E8500 ==> G3258 변경시 체감되는 성능 업글이 있나요? [7] 사이키 14/09/17 16:29 85 0
    35
    동작을 노회찬 후보 말인데요 [8] 사이키 14/07/27 14:49 190 0
    34
    매실청 만들고 있어요 [6] 사이키 14/06/13 20:54 132 0
    이틀전에 여기서 조언을 얻어서 정리한 sql 쿼리 입니다. [2] 사이키 14/06/13 16:29 38 0
    32
    sql 질문 하나 올립니다. [6] 사이키 14/06/11 14:14 40 0
    31
    sql 쿼리 고수분들께 질문 드립니다. [6] 사이키 14/06/11 11:10 38 0
    30
    에잇 글삭튀당했네 사이키 14/04/21 09:43 0 0
    29
    jsp,asp,php 개발 7년차인데 이번프로젝트 사이키 14/04/10 00:33 37 0
    28
    혹시 웹개발자분들중에 플로우차트를 그려서 html로 만들어주는 프로그램을 [4] 사이키 14/04/02 16:14 27 0
    27
    [5] 사이키 14/02/23 19:37 189 1
    25
    탕수육 전쟁 종결합시다. [3] 사이키 13/09/13 13:38 303 9
    24
    현역 아이폰용 앱, 안드로이드용 어플 개발자입니다. [7] 사이키 13/08/23 17:44 82 6
    23
    개발자 생활 7년차가 보는 고객, 기획, 디자인, 개발자의 관계 [2] 사이키 13/08/09 15:02 60 0
    22
    아...아름답다...예술점수 100점!! [3] 사이키 13/08/08 22:04 147 4
    20
    기증 자랑입니다 사이키 13/06/04 16:28 29 4
    19
    삼팬 입장에서본 어제 넥두전 사이키 13/05/22 14:19 69 3
    18
    애마 대결을 시작하지 [4] 사이키 13/04/16 01:04 122 0
    [1] [2] [3] [4]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈