📈 Database

    [ElasticSearch] 조회 방식 비교(쓰는 중)

    스크롤 API 이전 페이지 한 개만 유지하는 것이 아니라, 처음 요청 이후 모든 스냅샷 데이터를 유지  GET my_index/_search{  "from": 100000,  "size": 10,  "sort": [{ "timestamp": "asc" }]}이 요청은 100,000번째 문서부터 10개를 반환하는 것이 목적입니다. 🛠 내부 동작 과정Elasticsearch는 모든 샤드에서 처음부터 100,010개의 문서를 검색합니다. 검색된 100,010개의 문서를 정렬 기준에 따라 정렬합니다. 그중에서 from에 해당하는 100,000번째 문서부터 10개만 반환합니다. 하지만 처음 100,000개의 문서도 불필요하게 가져와서 버리게 됩니다.  from + size는 깊은 페이지네이션(Deep Pagin..

    [DB] Json을 RDBMS(MySQL, PostgreSQL)에 저장해도 좋을까?

    우선 키 밸류 형태의 값을 저장하기 위한 대표적인 저장소는 NoSQL입니다.하지만 어떠한 데이터를 저장하느냐에 따라 MySQL을 이용해도 무방한 경우가 있는데 여러 사이트를 참고한 결과를 정리해보겠습니다.아래의 조건을 다 통과한다면 RDBMS에서 사용해도 무방합니다.RDBMS에 저장하기 위한 조건1. 자주 업데이트 할 경우 성능에 영향을 끼친다. 예를 들어, 간단한 구조의 단순한 설정 데이터나 로그 데이터를 저장하는 경우, MySQL의 JSON 컬럼으로 충분할 수 있습니다. 2. 수정 과정이 일반 SQL보다 복잡하다. 3. 몽고 DB에 비해 집계 등 JSON에 대한 다양한 쿼리를 사용하기 어렵다. 4. 저장되는 Json이 크다면 속도 저하가 발생한다. (참고) 얼추 수천글자를 저장하는 케이스가 빈번하게 ..

    [InnoDB Engine] 페이지란?

    페이지란?DB에서 행(Row)을 저장할 때 실제 물리적으로 디스크에 담기는 단위는 '페이지'로 관리됩니다.하나의 페이지에는 여러개의 행이 담긴다고 볼 수 있습니다.페이지의 목적효율적인 데이터 관리와 성능을 위해 데이터베이스 시스템에서 자주 사용됩니다.페이지 단위로 데이터 접근을 최적화하면, 데이터 조회와 수정 시 성능을 향상시킬 수 있습니다.페이지 크기는 디스크 I/O를 줄이고, 캐시 메모리 사용을 최적화하는 데 도움이 됩니다.페이지는 메모리 내에서 효율적으로 데이터를 캐싱하고, 페이지를 통해 데이터 접근을 관리합니다.페이지의 특징InnoDB에서는 데이터와 인덱스가 디스크에 저장될 때 페이지라는 블록 단위로 나뉩니다.각 페이지는 고정된 크기를 가지며, 일반적으로 4KB, 8KB, 16KB, 또는 32KB..

    MaxScale 지식

    MaxScale은 MariaDB 에서 지원하는 DB Proxy 입니다.HA proxy 와 동일하나 DB read/ write 쿼리를 지정한 db 서버로  나눠주는 기능이 있는 등 DB에 더 특화되어있습니다.read / write 분산이 필요한 아키텍처에서 MaxScale 을 사용하면 효율적으로 분산 구조를 구성할 수 있습니다.