https://tipland.tistory.com/55

 

[MySQL] 커버링 인덱스를 통한 쿼리 성능 개선

MySQL에서 커버링 인덱스로 쿼리 성능을 높여보자!! 커버링 인덱스(Covering Index)라는 내용인데, 대용량 데이터 처리 시 적절하게 커버링 인덱스를 활용하여 쿼리를 작성하면 성능을 상당 부분 높일 수 있습니다..

tipland.tistory.com

테이블 셀프 조인을 사용해서 매우 간단한 쿼리인데도 굉장한 성능 개선의 효과가 생겼다. 엄청 신기..

 

어렸을 땐 단순히 원하는 DML 잘 짜는 것만이 능력이라고 생각했는데, 최근에는 성능의 중요성을 느끼게 되었다.

 

쿼리 작업할땐 Explain 을 필수로 꼭 찍어보도록 하자.

 

 

 

 

 

https://jojoldu.tistory.com/358

 

[mysql] Percona pt-online-schema-change 설치 및 사용하기

Mysql에서 몇억건 이상의 대량의 데이터를 갖고 있는 테이블을 update 하는것은 쉬운일이 아닙니다. 단순히 alter table 을 해버리면 4시간, 5시간 이상 수행되기 떄문인데요. 이를 해결 하기 위해 create select..

jojoldu.tistory.com

DB 스키마의 무중단 변경 작업을 위해 사용하는 툴.

 

트래픽이 많지 않다면 단순히 트래픽이 적은 시간대에 변경 작업을 하는 방법도 방법이겠지만, 실시간으로 DB 작업이 이루어지는 곳이라면 반드시 인지해야될 사항 중 하나 인 것 같다.

 

임시테이블 생성 후 바라보는 테이블의 이름을 변경하는 것이 이 툴의 동작 방식으로 보인다.

 

만약 툴을 사용하지 않더라면 생각한 방법은.. 임시 테이블을 만들어 두고 기존 테이블에 트리거를 걸어서 동일한 데이터가 쌓이게끔 하고 어느정도 안정이 되면 임시 테이블과 기존 테이블의 이름을 변경하면 되지않을까 정도..?

 

API 를 통한 DB 접근 방식도 써보면 좋을 것 같은데 아무래도 초기에 그런식으로 설계가 되지 않았더라면 공수가 많이 드는 방식이라고 생각이 든다.

 

 

 

 

 

https://gywn.net/2012/05/alter-table-without-service-downtime/

 

MySQL에서 테이블 스키마를 “무중단”으로 변경해보자!! | gywndi's database

Overview MySQL은 단순 쿼리 처리 능력은 탁월하나 테이블 스키마 변경 시에는 상당히 불편합니다. 일단 테이블 스키마 변경 구문을 실행하면 임시 테이블 생성 후 데이터를 복사하고, 데이터를 복사하는 동안에는 테이블에 READ Lock이 발생하여 데이터 변경 작업을 수행하지 못합니다. (Table Lock이 걸리죠.) 이 같은 현상은 인덱스, 칼럼 추가/삭제 뿐만 아니라 캐릭터셋 변경 시에도 동일하게 발생합니다. (최근 5.5 버전에서는 인덱스 추

gywn.net

이것도 비슷한 방법인데 트리거를 거는 방법에 있어서는 이 글을 참고해보면 좋을 듯 하다.

 

 

 

 

 

https://jojoldu.tistory.com/243

 

[mysql] 인덱스 정리 및 팁

MySQL 인덱스에 관해 정리를 하였습니다. MySQL을 잘 알아서 정리를 한것이 아니라, 잘 알고 싶어서 정리한 것이라 오류가 있을수도 있습니다. 1. 인덱스란? 인덱스 == 정렬 인덱스는 결국 지정한 컬럼들을 기준으..

jojoldu.tistory.com

같은 블로거의 인덱스 정리를 해놓은 글.

 

그 전까지만 해도 인덱스에 대해서는 반드시 있어야하지만, 또 많으면 안되는 것 정도로 인식을 하고 있었는데 인덱스가 구체적으로 어떤 방식으로 동작을 하는 것에 대해서는 상세하게 알지 못했던 것 같아 이 글을 두고두고 보면서 공부하려고 한다.