Ticket #708 (closed enhancement: fixed)

Opened 2 years ago

Last modified 5 months ago

쿼리 최적화 및 DB 속도 개선

Reported by: inureyes Owned by: inureyes
Priority: major Milestone: 1.8
Component: Core Version: 1.6
Keywords: database,optimization Cc:
Release:

Description

  • 새 DB 모듈이 나오기 전까지 기존의 쿼리들을 최적화한다.
  • mysql3에서의 속도 문제로 left join 도배해 놓은 곳들을 의미론에 맞게 재작성한다. (나중에 DB 모듈로 마이그레이트 할 때 착각하지 않도록)
  • 덤으로 생짜 mysql 쿼리들은 좀 날려준다.

Change History

  Changed 2 years ago by inureyes

  • status changed from new to assigned

[4556]

  • 댓글 관련 DB 참조 개선
  • 센터에서 첫 페이지 만드는 속도를 고려하여 최근 방명록 루틴을 독립시켰음.

  Changed 2 years ago by inureyes

[4557]

  • mysql_ 생짜 쿼리 개선
  • moveCategory의 버그 수정.

  Changed 2 years ago by inureyes

[4571]

  • 쿼리 캐싱이 잘 되도록 팀블로그 플러그인의 쿼리 살짝 수정
  • 첨부파일이 많은 경우 그 갯수만큼 쿼리하는데 그걸 한 번만 하도록 캐싱함.
  • 태그 출력시 쿼리 개선

  Changed 2 years ago by inureyes

[4572]

  • 배열 검색 조건의 문제로 cache에서 첨부파일을 읽어올 때 필드 명 검사하는 filter 옵션 잠시 끔.
  • row를 받아오면 array[0] arrayhi? 이렇게 중복으로 행을 읽어오는 특성 때문에 array_search에서 첫번째 숫자 부분이 먼저 찾아지고 검색을 중단한다. (타입을 비교하려면 두번째 것이 검사되어야 하는데!)

  Changed 2 years ago by inureyes

[4573]

  • JOIN 쿼리가 필요없는 부분들을 꼼수로 처리해 보기 위한 테스트 (1)
  • 먹히면 전체적으로 확대합니다. 매우 크게 overload가 줄어들 겁니다.

  Changed 2 years ago by inureyes

[4574]

  • 테스트 해 본 결과 적극 반영하기로 하였습니다.
  • 어떻게 쿼리 수는 똑같은데 execution time이 반이 되냐... OTL
  • 날이 갈 수록 어떤 잔머리가 늘어날지가 이젠 궁금해 지는 중.
  • UNION이나 subquery, foreign key를 도입하기 위해서 분기문을 지금부터 도입할 것인지, 아니면 그냥 2.0의 TCDBmodel을 기다릴지 고민중.

  Changed 2 years ago by gendoh

공개카테고리가 하나도 없을때는?

  Changed 2 years ago by inureyes

[4578]

  • 비공개 카테고리가 없거나 전부 비공개 카테고리일 때의 대응

  Changed 2 years ago by inureyes

[4581]

  • 태그 처리시 쿼리 변경

  Changed 2 years ago by creorix

[4580]

  • Query가 INSERT INTO tc_Comments (comment) VALUES ('select a') 와 같을 때 발생할 수 있는 문제에 대한 수정입니다.
  • 반영 부탁드립니다~

  Changed 2 years ago by inureyes

[4581]

  Changed 2 years ago by inureyes

[4583]

  • 카테고리 쿼리시 한 번에 끝냄.
  • 카테고리 천 개씩 만드는 사람이 없을테니 메모리에 올려 놓아도 상관 없을 것이다.
  • 관련하여 cache로 사용하는 변수를 다루는 컴포넌트의 드래프트를 하나 추가.
    • class MMCache
    • queryRow(variable, key, value)
    • queryCell(variable, key, value, returnvaluekey)
    • queryColumn(variable, key, value, returnvaluekey)
    • queryAll(variable, key, value)

  Changed 2 years ago by inureyes

OpenID 플러그인이 댓글 정보 읽어 올 때 화끈하게 쿼리하네요 ㅎㅎ 전부 모아서 한 번에 쿼리해주는 센스가 필요할 듯 합니다. 쿨엔님 화이삼~

  Changed 2 years ago by inureyes

[4584]

  • 비공개 카테고리 출력 루틴의 DB 입출력을 없앰.

follow-up: ↓ 16   Changed 2 years ago by creorix

[4585] 관련 질문드립니다. PHP 매뉴얼  http://www.php.net/manual/en/language.variables.scope.php에 의하면 global은 함수 내에서 함수 밖 scope의 변수를 사용하기 위해서 쓰는 키워드라고 되어있습니다. 그런데 [4585]에서는 함수 밖에서 이 키워드를 사용했습니다. 이와 같이 쓰신 이유가 무엇인지 궁금합니다.

in reply to: ↑ 15 ; follow-up: ↓ 17   Changed 2 years ago by gendoh

Replying to creorix:

[4585] 관련 질문드립니다. PHP 매뉴얼  http://www.php.net/manual/en/language.variables.scope.php에 의하면 global은 함수 내에서 함수 밖 scope의 변수를 사용하기 위해서 쓰는 키워드라고 되어있습니다. 그런데 [4585]에서는 함수 밖에서 이 키워드를 사용했습니다. 이와 같이 쓰신 이유가 무엇인지 궁금합니다.

include나 require로 global에서 읽어 들인 경우 문제가 없습니다만 함수 안에서 하였거나 requireModel을 사용하여 포함한 경우 global scope가 아니게 됩니다.

in reply to: ↑ 16   Changed 2 years ago by creorix

Replying to gendoh:

Replying to creorix:

[4585] 관련 질문드립니다. PHP 매뉴얼  http://www.php.net/manual/en/language.variables.scope.php에 의하면 global은 함수 내에서 함수 밖 scope의 변수를 사용하기 위해서 쓰는 키워드라고 되어있습니다. 그런데 [4585]에서는 함수 밖에서 이 키워드를 사용했습니다. 이와 같이 쓰신 이유가 무엇인지 궁금합니다.

include나 require로 global에서 읽어 들인 경우 문제가 없습니다만 함수 안에서 하였거나 requireModel을 사용하여 포함한 경우 global scope가 아니게 됩니다.

아, 그렇군요. 알려주셔서 감사합니다 :)

  Changed 2 years ago by inureyes

[4588]

  • 댓글에 댓글의 수정시 내용이 뜨지 않는 오류 수정

  Changed 2 years ago by inureyes

[4589]

  • 쿼리시 핸들이 없는 경우 free하는게 구태여 의미가... 해서 삭제.

  Changed 2 years ago by inureyes

[4652]

  • Decrease plugin-load time as considering the permission.

  Changed 2 years ago by inureyes

[4650]

  Changed 2 years ago by inureyes

[4651]

  Changed 2 years ago by inureyes

[4654]

  • Eliminate mysql_ functions from comment model.
  • Delete auto_increment extra property from comment tables.
    • Is not compatible with other DBMS.

  Changed 2 years ago by inureyes

[4655] * Bugfix : maxid functions could not refer database.

  Changed 2 years ago by inureyes

[4758]

  • 모듈 관련 오류 수정
    • 티켓이 좀 맞지는 않는데, #708 처리하던 중에 나와서 그냥 붙입니다.

  Changed 2 years ago by inureyes

[4756]

  • [4754] 수정하다가 예약글 갱신 때문에 퍼포먼스 떨어지고 있는 것이 분명한 부분이 보여 추가적으로 수정
  • 항상 예약글이 있는지 전체를 쿼리하지 않고, blogSetting에 예약된 글 들 중 가장 최근에 가까운 글의 시간 정보를 저장해 놓고 그걸 참조하도록 하였음.

[4757]

  • [4756] 관련 버그 수정
  • 함수 사용이 잘못 되어 있었음.

  Changed 2 years ago by inureyes

[4759]

  • 통계 관련 쿼리 모두 수정

  Changed 2 years ago by inureyes

  Changed 2 years ago by inureyes

[4781], [4782], [4783]

  Changed 2 years ago by inureyes

[4859]

  • 플러그인 설정 값이 비었을 경우 발생할 수도 있는 오류 방지

  Changed 2 years ago by inureyes

  • milestone changed from 1.6 to 1.6.1

  Changed 2 years ago by inureyes

[5527]

  • 쿼리 줄이기~

  Changed 22 months ago by inureyes

  • milestone changed from 1.7 to 1.7.1

  Changed 5 months ago by inureyes

  • status changed from assigned to closed
  • resolution set to fixed
Note: See TracTickets for help on using tickets.