📈 Database
[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 을 사용하면 효율적으로 분산 구조를 구성할 수 있습니다.
[Mysql] No space left on Issue 해결
개요테이블 DDL, DML 명령어 수행 시 발생하는 이슈 시스템 및 디비 용량 확인DB 용량 확인 SELECT TABLE_NAME AS `Table`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`FROM information_schema.TABLESWHERE TABLE_SCHEMA = 'DB 이름'ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC; 시스템 용량 확인df -h /var/lib/mysqldu -sh ./* 그럼 Binary Log 파일의 용량이 과도한 것을 확인할 수 있으므로 삭제하면 된다. 추후 해당 이슈를 막으려면 /etc/mysql/my.cn..