일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- CS
- 레디스
- nosql
- 운영체제
- CSS
- 완전탐색
- PYTHON
- 자료구조
- 백준
- 프로그래머스
- OS
- DFS
- Data structure
- javascript
- redis
- 데이터베이스
- deque
- BFS
- jpa
- 영속성 컨텍스트
- Dijkstra
- db
- java
- It
- 아키텍처
- HTML
- 캐싱
- Algorithm
- 플로이드-워셜 알고리즘
- 알고리즘
- Today
- Total
목록DB (10)
If at first you don't succeed, try again

* 개요타 RDBMS보다 NoSQL인 redis의 속도가 훨씬 빠르다길래 궁금해서 한번 실습을 해보았다.Framework는 Spring Boot를 사용, 더미 데이터는 100만 건을 넣었고, 간단한 게시글 조회로 실습을 진행하였다.조회 속도 확인은 Postman을 통해 진행하였다. * Repository 구현import org.springframework.data.domain.Page;import org.springframework.data.domain.Pageable;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.stereotype.Repository;@Repositorypublic inter..

* 개요https://cyr0331.tistory.com/99 [DB] Index 실습(대용량 데이터 처리)* 개요얼마 전 대용량 시스템 공부를 진행하면서, DB에 약 700만건의 테스트 데이터를 삽입하였다.그 후 페이징 처리를 하기 위해서 조회를 하였는데, 다음과 같은 결과가 나왔다.select * from articlecyr0331.tistory.com지난 게시글을 통해 Index 실습을 진행하였다.인덱스를 생성함으로써 약 700만개의 데이터를 조회하는 시간을 17초에서 0.02초로 줄일 수 있었다.그런데 과연 인덱스를 사용함으로써 문제는 전부 다 해결되었을까? * 뒷 페이지 조회문제가 전부 해결됐는지 확인하기 위해 이번엔 50000페이지를 조회해보도록 하겠다.select * from article ..

* 개요얼마 전 대용량 시스템 공부를 진행하면서, DB에 약 700만건의 테스트 데이터를 삽입하였다.그 후 페이징 처리를 하기 위해서 조회를 하였는데, 다음과 같은 결과가 나왔다.select * from article where board_id = 1 order by created_at desc limit 30 offset 90;1번 게시판의 91번 게시글에서 120번 게시글까지 가져오는 데에 17초 이상이 걸린다.실제로 사용자가 페이지를 조회하고자 한다면 불편함을 토로할 것이다.explain 명령어를 통해 쿼리 플랜을 확인해보았다.explain select * from article where board_id = 1 order by created_at desc limit 30 offset 90;쿼리 타..

* Redis 캐싱Redis 캐싱이란, redis 캐시에서 접근해서 데이터를 빠르게 가져오는 방식이다. * Cache Aside 전략Cache Aside 전략은 look aside 전략 또는 lazy loading 전략이라고 부른다.예시를 통해 cache aside 전략의 작동 방식을 알아보자.- 게시판 서비스 배포처음 게시판 서비스를 배포했기 때문에 DB와 redis에는 데이터가 저장이 되어있지 않다.user가 들어와 게시글 작성을 함으로써 데이터를 저장한다. 이 데이터는 DB에 저장된다. 여기서 주의할 점은 redis에는 저장이 되지 않는다는 점이다.사용자가 데이터를 조회하려고 요청한다. 이 때, DB로부터 조회를 하기 전, redis에 데이터가 존재하는지 먼저 확인한다.redis에 데이터가 없는 것..
* 데이터 저장 명령어 set# set [key 이름] [value]$ set member:name "James Brook" # 띄어쓰기를 해서 저장하려면 ""으로 묶어줘야 함$ set member:nickname wanda * 데이터 조회 명령어 get# get [key 이름]$ get member:name$ get member:nickname * 저장된 모든 key 조회$ keys * * key를 통해 데이터 삭제# del [key 이름]$ del member:name$ get member:name # 삭제되었는지 확인 * 데이터 저장 시 만료시간(TTL) 정하기Redis는 RDBMS와는 다르게 데이터 저장 시 만료시간을 설정할 수 있다. 즉, 영구적으로 데이터를 저장하지 않고 일정 시간이 되면 데이..
* Redis란?레디스는 "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템이다. 또한 레디스는 데이터 처리 속도가 매우 빠른 In-Memory 기반의 NoSQL 데이터베이스이다. * Redis의 장점레디스는 인메모리에 모든 데이터를 저장한다.따라서 데이터의 처리 성능이 굉장히 빠르다. * Redis의 기능캐싱세션 관리실시간 분석 및 통계메시지 큐지리공간 인덱싱속도 제한실시간 채팅 및 메시징

* 트랜잭션(Transaction)이란?트랜잭션은 데이터베이스에서 논리적인 작업의 단위를 의미한다. 여러 작업이 하나의 단일 작업처럼 수행되도록 보장하여 데이터의 일관성과 무결성을 유지하는 역할을 한다. * 트랜잭션의 4가지 특성(ACID)원자성 (Atomicity)모든 작업이 완전히 수행되거나 전혀 수행되지 않아야 함중간에 오류가 발생하면 모든 작업이 롤백(Rollback)예: 송금 시, 돈을 보내는 작업과 받는 작업이 모두 성공하거나 둘 다 취소됨일관성 (Consistency)트랜잭션 전후로 데이터베이스의 상태가 일관되어야 함예: 은행 계좌에서 출금 후에도 총 잔액은 변하지 않음격리성 (Isolation)동시에 수행되는 트랜잭션이 서로 영향을 미치지 않도록 보장예: 두 사용자가 동시에 같은 상품을 구..

먼저 https://www.postgresql.org 에 접속한다.그 후 Download 버튼을 입력한다.해당 사진과 같이 자신의 PC에 맞는 운영체제과 버전을 골라 설치하면 된다.다 설치했다면 환경변수 설정을 해야한다.windows 검색창에 "시스템 환경 변수 편집"이라고 검색한다. 검색했다면 이러한 창이 나타나게 될 것이다.환경 변수 버튼을 누른 다음, path 변수를 편집한다. 편집 버튼을 누른다면 이러한 창이 나타난다."새로 만들기" 버튼을 클릭 후 PostgreSQL을 설치한 경로를 입력해주면 된다.필자의 경우에는 C:\Program Files\PostgreSQL\11\bin 이 설치한 경로였다.경로까지 입력했다면 적용을 하고 확인 버튼을 누르면 된다.그 후에는 cmd창으로 가서 잘 설치가 되었..
* SQL이란 ? - 데이터베이스에 접근하여 데이터를 다루기 위한 전용언어를 구조화된 질의 언어(SQL)라고 한다. - 데이터베이스 관리 시스템 중 가장 많이 사용되는 관계형 데이터베이스 관리 시스템(RDBMS)과 소통할 수 있는 대부분의 수단은 SQL이다. - 사용자는 SQL을 RDBMS에 보내고, RDBMS는 사용자가 보낸 SQL을 해석하여 데이터베이스에서 데이터를 가져오거나 조작한다. * SQL의 특징 - DBMS 전용 언어 : 단순히 정보를 얻는 질의(SQL)뿐만 아니라 데이터베이스의 데이터를 정의하고, 조작하고 제어하는 RDBMS의 기능도 한다. - 타 프로그래밍 언어와의 차이 : 호스트 프로그래밍 언어들은 사용자들이 데이터가 어떤 방식으로 연산되고 처리되어 결과값이 나와야 하는지에 대해서 일일..
* 데이터 - 현실에 존재하는 사실적인 자료들의 집합으로 예를 들어 온도, IQ 등과 같이 그 자체로는 단순한 사실만을 나타내는 것 * 데이터의 특성 - 통합 데이터 : 데이터들이 모여 있으면 중복되는 데이터들이 있을 수밖에 없다. 그러한 데이터들을 통합하여 중복되는 데이터를 줄이는 것을 '통합 데이터' 라고 한다. - 저장 데이터 : 종이에 쓰인 문서나 책 등이 아니라 컴퓨터 내부에 저장되어 있는 데이터를 의미하는 것을 '저장 데이터' 라고 한다. - 운영 데이터 : 조직을 운영하는 데 도움이 되는 데이터들이 저장되는 데이터를 '운영 데이터' 라고 한다. - 공유 데이터 : 개개인의 필요에 의해 모인 데이터가 아니라, 공동의 필요에 의해 저장되는 데이터를 '공유 데이터' 라고 한다. * 데이터베이스 -..