개발 Q&A

제목 3년간 예약건 로우가 60만건 innodb select 속도 이슈 질문이요.
글쓴이 작성시각 2015/12/17 11:19:47
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 13347   RSS

안녕하세요.

 

현재 여행사 예약프로그램을 만들고 있는데,

 

그전에 여행사 유지보수를 했던적이 있습니다. 그래서 이런 이슈에 대해서 아키텍트급으로 궁굼한 사항이 있어서

 

질문 하게 되었습니다.

 

그전에 사용하던 디비는 mysql 4버전, 언어셋은 latin1 이었습니다.

 

운영체제는 centos5, 코어는 쿼드코어에 쓰래드 8개고, 메모리는 16기가 였고 코어 스피드는 2.6Gh 정도였던거로

 

기억합니다.

 

현재 서버는 비슷한 사양에 코어스피드가 3Gh 좀 넘는 스펙에 mariadb 5.5.41버전입니다.

 

제가 궁굼한건 그전에 사용하던 디비에선 3년간 사용하던 업체의 디비 테이블 로우가 60만건이 되니 

 

join문 포함헤서 페이지당 15줄 가량의 테이블을 읽어오는데 대략 느릴때는 10초가량 걸려서

 

예약건을 삭제해준 경험이 있었거든요.

 

그래서 속도가 빨라졌던 경험이 있는데, 현재 제가 구현하고 있는건 관리하는 업체가 더 많아져서 결국엔

 

로우가 3년간 사용했을경우 600만건 이상될걸로 예상되는데, 다른 디비를 사용해본 경험이 없어서,

 

이럴경우엔 어떻게 해결해야 할 지 궁굼합니다.

 

몇가지 제가 생각하는 답은 

 

1. mongodb를 사용한다.

2. oracle을 사용한다.

 

가 있을거 같은데, 혹시 mysql만으로도 훌륭히 속도 이슈를 해결할 방안이 있을런지요?

 

인터넷 검색해보니 텀블러 사이트는 mysql로 만들었다던데,  mysql만으로 해결하려면 

 

가령 row가 10만건 생기면 테이블이 자동으로 table1 이런식으로 늘어나서

 

union하는 방향으로 개발해야 할가요? 

 다음글 AR 쿼리문 질문드려요. (3)
 이전글 웹 개발자분들에게 여쭤보고 싶은게 있습니다 (3)

댓글

변종원(웅파) / 2015/12/17 11:54:20 / 추천 0

쿼리 튜닝, db 구조 변경 등의 방법이 있고

 

제가 관리중인 광고 리포트용 마리아 db는 1억4천만건 정도 들어있고 7.2G 정도 됩니다만 속도저하가 없습니다.

파티션 사용중입니다. 광고차수별로 리포트가 운용되서 차수별로 파티셔닝을 해놔서 검색시 그 파티션만 대상으로 검색을 합니다.

파티셔닝 잘 사용하시면 튜닝없이 빨라질 수도 있습니다. ^^

 

추가 서버사양은 kt ucloud 2core 2G 입니다.

/ 2015/12/18 10:26:32 / 추천 0

//웅파

답변 감사합니다. 파티셔닝에 대한 지식이 없는데 공부해야겠습니다.

당근병아리 / 2015/12/21 10:28:36 / 추천 0

저는 mysql 5.6 ver로 광고관련 DB DATA로 운영중입니다.

 

웅파님이 말씀한 것이 다 옳습니다.

제가 경험을 적으다면 큰 용량 테이블DATA는 파티셔닝이 중요합니다

date log 식인지? unique 식인지?  range 인지?

등 파악해야 됩니다.  그를 통해 query의  where 절 이 결정됩니다.

즉 각각 테이블의 설정에 맞게 적용하는 것이 좋습니다.

 

통게테이블이 수집하는 table row는 삭제하는 것이 좋습니다.

개인적으로  보관기간이 필요한 log는 기존 테이블에서는 삭제하면서 archive db로 이전이 좋습니다.

 

저는  kt ucloudd 4core 16gb입니다. ^ ^

/ 2015/12/22 18:23:40 / 추천 0

//웅파

다시한번 감사합니다!  +_+

 

//당근병아리

답변 감사합니다.

파티셔닝 공부중인데, 좋네요.. 적용하고 싶은데 아직 주저하고 있긴한데, 조만간 적용할 거 같습니다! ^^