모바일 오유 바로가기
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
    조회수 : 596
    IP : 222.112.***.145
    댓글 : 2개
    등록시간 : 2014/06/13 16:29:04
    http://todayhumor.com/?programmer_3960 모바일
    이틀전에 여기서 조언을 얻어서 정리한 sql 쿼리 입니다.


    개발환경은 php , MySql 5.1.45 입니다.

    우선 기본 베이스 테이블이 2개 이고
    1번째는 게시물 테이블(g_board)
    2번째는 첨부파일 테이블(g_attach) 입니다

    워낙 연동하는 다른 테이블들이 많아서 view 테이블을 만들었었는데
    게시물 한개당 최대 첨부 파일 갯수를 6개로 제한 해 두고 
    처음 쿼리를

    create view view_etc_tbl AS
    select idx, ....... , 
    (select CONCAT(attach_path,'/',attach_savename) from g_attach 
    where b.idx = board_idx order by attach_idx asc limit 0, 1) as att_file1,
    (select CONCAT(attach_path,'/',attach_savename) from g_attach 
    where b.idx = board_idx order by attach_idx asc limit 1, 1) as att_file2,
    .......,
    from g_board order by idx desc
    (다른 테이블들 과의 Join 들은 제외하고 주요코드만 정리한것입니다.)

    뭐 이런식으로 짜서 view_etc_tbl 이란 뷰테이블을 만들었습니다.
    그런데 저게 내부에서 select 문이 6번 이상을 돌게 되면서 
    데이터 양이 많지 않음에도 불구하고
    쿼리한번 호출하는데 2초 이상이 걸리게 되더라구요
    (저 6개의 select문만 제거 하면 실행시간이 0.1초대로 줄어듭니다.)

    그래서 상기 뷰테이블을 조인문으로 바꿔서 새로이 만들려고 시도 했으나 
    MySql 에서는 뷰테이블을 만들시에 변수도 사용할 수 없고, 
    또한 결정적으로 Sub쿼리를 쓸수 없게 되어있더라구요
    그냥 sql 쿼리문으로 돌리면 잘 돌아가는데 이걸
    뷰테이블로 만들려구하면 주구장창 
    You have an error in your SQL syntax:~~~
    뭐 이런 애러가 떠서 결국 중도에 포기 하고 말았습니다.
    (꼼수로 서브쿼리에 들어갈 select 문을 view 테이블로 만들고 그
    view 테이블을 참조해서 view 테이블을 만들려고
    시도했는데 그것도 MySql에선 안되더군요... 내 오라클을 돌려줘..ㅠㅠ)

    결국엔 뷰테이블 사용을 포기 하고 쿼리문에서
    우선 

    CREATE VIEW gb AS 
    select 
    max(f.board_idx) AS board_idx,
    max(f.attach_path) AS attach_path,
    group_concat(f.attach_savename order by f.board_idx ASC separator '|') AS attach_savename
    from g_attach f group by f.board_idx;

    로 gb라는 view 테이블을 만들고 그안에서 첨부파일이 포함된 폴더는 
    게시물 별로 같으니 그냥 한 컬럼에 통일하고 첨부파일명은 '|' 라는 구분자로 구분해서
    한컬럼에다 쭉 몰아넣어버렸습니다.

    그다음에 include 되는 파일에서 

    (SELECT
     b.idx as idx, .........,
     attach_path, attach_savename
     from 
     (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)
     AS TTD 

     라고 문자열 상수로 선언 해버리고 이전에 view_etc_tbl 을 참조하던부분을 선언된 상수로 바꿔버렸습니다.
     그러고 나니깐 기존에 
     att_file1 ~ 6 의 컬럼에 나오던 부분을
     attach_path 컬럼에 파일이 저장된 폴더가 나오고 
     attach_savename 에 '|'로 구분된 파일명 6개가 나오게 했습니다.
     결국엔 지금까지 view_etc_tbl 을 참조해서 att_file1~6까지 뿌려주던 php 파일 모두를 
     path와 savename 을 받아와서 구분자로 구분해서 하나로 합쳐주고 뿌려주게 바꿔야만 했는데요
     이런 작업을 해주니깐 기존 view 테이블을 참조하는 php 파일의 로딩속도가 약 3~4초였었는데..
     지금은 이미지 로딩까지 포함해서 0.7~0.8 초대로 체감속도가 확 달라졌습니다.

    문제는 상수로 쓴 sql 쿼리문이 지금 제가 최대치로 줄여놔서 6줄이지만
    실제 코드에 들어간 코드는 한글에서 치면 A4용지 2장을 조금 넘는 
    어마어마한 길이의 쿼리문이 되어버렸다는거죠.....;;
    (저 상수에 앞뒤로 붙는 쿼리문 까지 합치면 쿼리문 길이가 그야말로 ㅎㄷㄷ)
    (난 이상하게 쿼리문이 길어지면 길어질수록 실행속도가 올라가더라는;;;)

    뭐 저처럼 MySql 에서 게시물 리스트와 첨부파일이나 댓글리스트를 받아와서 한화면에 같이 
    뿌려주어야 할 일이 생기신 분들께 좋은 활용방안이 될수있을꺼라 생각해서 올립니다.

    혹시나 해서 질문드립니다.
    저 위에 올린 쿼리문을 MySql에서 View테이블로 만들수는 정말 없는건가요....ㅡ.ㅜ

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 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]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈