인프라/Database
-
[MariaDB] ColumnStore Engine - Row-Oriented, Column-Oriented인프라/Database 2022. 3. 23. 23:39
들어가기 앞서 대량의 데이터를 저장해야하는 Database 는 보조기억장치에 저장됩니다. CPU - 레지스터 - 캐시 - 메모리 - 보조기억장치 CPU가 명령어를 실행하고 연관된 데이터를 가져오려면 대략적으로 위와같은 단계로 가져옵니다. 가장빠른 레지스터와 가장 느린 보조기억장치 사이에는 엄청난 속도의 차이가 있고, CPU가 동작할 때는 네트워크도 마찬가지지만 가장느린 속도에 Sync를 맞추게 되어있습니다. 느린 보조기억장치에서 데이터를 얼마나 자주 가져오지 않느냐가 컴퓨터의 속도를 결정합니다. 그래서 용량은 적고 속도는 빠른 기억장치들에 데이터를 Cache 해놓고 CPU가 보조기억장치에 최소한으로 접근하도록 하는것이 관건입니다. 제가 경험해본 바로는 중복된 빅데이터의 집계를 낼 때 Row-Oriente..
-
[MariaDB] ColumnStore Engine 회고인프라/Database 2022. 3. 13. 23:44
이력서 업데이트하는 과정에서 과거의 경험을 회고하고자 게시글을 쓴다. 2019년 첫 SI회사에서 KBS 시청률 통계 관리자 사이트를 개발할 당시, 기존 MariaDB 통계 테이블 InnoDB Engine에서 억단위의 데이터를 통계내다보니 속도가 너무 느려 ColumnStore Engine 으로 마이그레이션 했던 프로젝트가 있었다. 얼떨결에 신입으로 혼자 삽질을 해가며 서버구축(ColumnStore 설치도 포함)부터 프로젝트 마무리까지 했었는데, 그 당시에는 별 생각이 없었지만 지금 돌이켜보면 좋은 경험이었다. 결론부터 말하면 월 단위 통계쿼리가 16초 -> 0.1초로 개선되었다. 같은 날짜에 여러 플랫폼에서 들으어오는 시청률, 시청자 수 데이터를 집계하는 쿼리였었다. 예를들어 10월 1일에 시청률, 시청..