본문 바로가기

db4

MongoDB란? 노션에 따로 정리둔인 것들을 미리 옮겨놓았습니다 MongoDB란? NoSQL DB이다. key-value와 다르게 범용적으로 사용 가능 스키마를 고정하지 않는 형태 데이터를 구조화해서 json형태(key-value화)로 저장 join이 불가능하기 때문에 join이 필요없도록 데이터 설계 필요 특징 메모리맵 형태의 파일엔진 DB → 메모리 크기가 성능을 좌우 쌓아놓고 삭제가 없는 경우가 적함(트랜잭션이 필요한 경우는 부적합) 도큐먼트 데이터 모델 NoSQL이란? Not Only SQL의 준말이며, SQL을 사용하는 관계형 DB가 아닌 DB를 의미함 RDBMS vs NoSQL MongoDB를 왜 써야하나? 인터넷 서비스가 점점 많은 곳에 보급되고 데이터를 전송하는 device의 수가 증가하게 되면서, 전통적.. 2023. 12. 7.
쿼리 실행계획 (Query Plan)이란? 이슈 최근 회사에서 애플리케이션 기능개선 작업을 진행하던 중, 신규 테이블을 1개 생성해야하는 상황이 생기게 되었다. 그리고 기존 SQL들에서 해당 테이블을 사용하게끔 대거 수정하였다. 헌데 해당 테이블을 생성할 때 컬럼으로 INDEX를 덜 지정해둔 것 같아, 이로 인해 쿼리 성능이 낮아졌는지 체크하는 게 좋을 것 같아 쿼리 실행계획을 파악해보기로 하였다 INDEX는 추가적인 쓰기 작업과 저장 공간을 활용하여 DB 테이블 검색 속도를 향상시키기 위한 자료구조이니, 그냥 모든 컬럼 싹 다 INDEX 걸면 안되냐?! 라고 하면 필자도 사실 혹하긴하나, 아래와 같은 이슈가 있으니 배제하고 필요한 것만 INDEX를 걸기 위해 현재 쿼리 실행계획을 파악하고자 한다. * INDEX를 다 걸면 곤란한 이유 인덱스를 .. 2023. 12. 6.
Redis 개념 및 사용법 그동안 생각만하고 직접 써보지는 않았던 DB인 redis, 새로운 기술에 대한 막연한 두려움때문에 그동안 쓰지 않았던 것 같다. 러닝커브에 대한 두려움이 늘 있어서 그랬던 것 같다. 헌데 회사일을 하면서 DB응답속도를 개선시키고 싶은 부분이 계속 생겨서 언젠간 꼭 배워야겠다고 마음을 먹었다. 주말인 오늘, 개념을 다시 훑어보고 직접 사용해본 경험을 아래에 적어두려고 한다. Redis란 무엇일까요~? 빅천재맨들이 만든 갓구글에 검색하면 바로 아래와 같이 요약된 내용이 나온다 Redis는 REmote DIctionary Server의 약어입니다. Redis는 속도가 빠르고 사용이 간편하여 최고의 성능이 필요한 웹, 모바일, 게임, 광고 기술 및 IoT 애플리케이션에서 널리 사용되고 있습니다. 조금 더 자세히.. 2023. 6. 3.
MySQL / MyISAM / InnoDB 1. MySQL의 구조는 어떻게 되어있는가? 아래와 같이 2가지로 구성되어 있다. 1. MySQL 엔진 2. 스토리지 엔진 1.1 MySQL 엔진 > 파서, 전처리기, 옵티마이저, 쿼리실행기 등으로 구성되어 있다. > 사용자의 요청을 받아 쿼리를 검사하고, 스토리지 엔진에게 데이터 읽기 또는 변경에 대한 실행 요청을 한다. 1.2 스토리지 엔진 > 데이터 파일로부터 데이터를 읽거나, 데이터를 쓰고 변경하는 작업을 진행한다. > InnoDB, MyISAM, Maria 등으로 나뉜다. > 최신버전 MySQL은 기본 스토리지 엔진으로 InnoDB를 채택하고 있다. 2. InnoDB VS MyISAM InnoDB > InnoDB 엔진은 트랜잭션 처리가 필요하고 대용량의 데이터를 다루는 부분에서 효율적이다. > .. 2022. 12. 31.