디비별 SQL 비교
Database 관리
Maria (RDB) | MongoDB |
Redis (메모리, NoSQL/Cache, 오픈 소스) * 명령어 참조 : http://www.redisgate.com/redis/command/sets.php
* 기타 참조 : |
DJango
* 참조 |
|
특징 |
1. 리스트, 배열 데이터 처리 2. value 값으로 문자열, 리스트, Set, Sorted set, Hash 등 3. 리스트형 데이터 입력과 삭제가 MySQL 대비 10배 ( 초당 2만 ~ 10만회 수행 성능 ) 4. 여러 프로세스에서 동시에 같은 key에 대한 갱신을 요청할 경우, Atomic 처리로 데이터 부정합 방지 Atomic처리 함수를 제공 5. 메모리를 활용하면서 영속적인 데이터 보존 - 명령어로 명시적으로 삭제, expires를 설정하지 않으면 데이터가 삭제되지 않는다. - 스냅샷(기억장치) 기능을 제공하여 메모리의 내용을 *.rdb 파일로 저장하여 해당 시점으로 복구할 수 있다. 6. Redis Server는 1개의 싱글 쓰레드로 수행되며, 따라서 서버 하나에 여러개의 서버를 띄우는 것이 가능하다. - Master - Slave 형식으로 구성이 가능함 |
|
||
Server 실행 | redis-server | |||
Clien 실행 | redis-cli | |||
Server Alive Check | ping | |||
DATATYPE.String |
- String은 일반적인 Text문자열이며, key와 value가 각각 하나씩인 일대일 관계(유일) 예를 들어 ':', '-' 등을 사용해서 key를 구성하면 쉽게 알아볼 수 있습니다.
- set, get command |
|
||
DATATYPE.Lists |
- 일반적인 배열로 생각하면 된다. - 한 key에 담을 수 있는 최대 갯수는 4,294,967,295개(2^32 - 1개) |
|
||
DATATYPE.Sets | - Group 형태로 key 1개에 n개의 값을 갖는다. (단, 중복된 값 허용하지 않음) - 입력된 순서와 상관없이 저장되는 정렬되지 않은 집합형이다. - '집합'이기 때문에 한 key에 중복된 데이터는 존재할 수 없다. - 즉, 동일한 key에 같은 값 value A가 두 번 추가된다면 값은 하나만 존재하게 된다. - 한 key에 담을 수 있는 최대 갯수는 4,294,967,295개(2^32 - 1개) - Set의 경우 집합 연산을 제공한다. 합집합, 교집합, 차집합을 할 수 있다. - Sets에서는 집합이라는 의미에서 value를 member라 부른다. 명령어 SADD : 데이터를 저장하기 위한 명령어. |
|||
DATATYPE.Sorted sets | - key 하나에 여러개의 score와 value로 구성된다. - Sets과 마찮가지로 중복된 데이터는 허용하지 않는다. 동일한 키에 값을 여러번 추가해도 하나만 존재하게 된다. - Set에 'score'라는 필드가 추가된 데이터형이다. - score로 데이터 값(value)의 순서를 정렬(sort)한다. - score가 같다면 데이터 값(value)으로 정렬(sort)한다. - 정렬된 데이터가 필요한 경우 Sorted Set 데이터형을 사용한다. |
|||
DATATYPE.Hashs |
- Hashes의 경우 key 하나에 여러개의 field와 value 쌍으로 구성된다. Hashes VS Table 공통점 |
|
||
String set | SET @KEY := VALUE | SET KEY = VALUE | ||
Value get | SELECT @KEY | GET KEY | ||
CREATE TABLE | ||||
SELECT 1 Row |
Syntax> model.objects.get(조건) 설명> 1 row 만 리턴해야 함. Ex> key = model1.objects.get(pk=pk) print(key.name) |
|||
SELECT Multi Row |
Syntax> model.objects.filter(조건) 설명> 조건에 맞는 Row 모두 가져옴 Ex> key= model.objects.filter(name='lee') print(key[0]['name']) |
|||
SELECT ALL |
Syntax> model.objects.all() Ex> key= model.objects.all() print(key[0]['name'] |
|||
INSERT | ||||
UPDATE | ||||
DELETE | ||||
조건 키워드 | ||||
ORDER BY | Ex> value = model.objects.order_by('-pk') # 내림차순 정렬 value = model.objects.order_by('pk') # 오름차순 정렬 |
|||
GROUP BY |
Syntax> Aggregate Ex> from django.db.models import Max
Ex2> from django.db.models import Max |
|||
'Database 관리' 카테고리의 다른 글
Database Docker (mysql, mariadb, oracle, postgres...) (0) | 2024.08.02 |
---|---|
데이타베이스 콘솔 기본 명령어 모음 (0) | 2022.01.14 |