반응형

DB 24

MySQL 계정

🤎 계정 리스트 출력 1. mysql 데이터베이스 사용 use mysql; 2. 계정 조회를 위해 user 테이블 조회 select user from user; 🧸 계정 생성 create user 계정명@localhost identified by '비번'; 계정 생성 ex) create user normal@localhost identified by '202301'; 🐣 계정 비밀번호 변경 alter user '계정명'@'localhost' identified by '비밀번호'; 계정 비밀번호 변경 ex) alter user 'users'@'localhost' identified by 'newpwd'; 🎀 위에서 만든 계정으로 로그인 mysql -u users -p 계정 권한 Administrative ..

DB/MySQL 2023.01.21

Neo4j 설치

https://neo4j.com/download/ Download Neo4j Desktop Experience Neo4j 5 on your desktop. Get started with the free graph database download today and avoid the costs of self-hosted deployment. neo4j.com 👆 다운로드 링크 다운로드 하기 전에 간단한 개인 정보를 입력하게 됩니다. 복붙한 Activation Key를 여기에 넣자. DBMS 생성하기 생성할 DBMS 이름, 비밀번호를 입력하고 Create 버튼을 눌러서 생성 DBMS에 연결 내가 만든 neo4j DBMS를 start해주었다. active로 상태가 변함 http://localhost:7474로 ..

DB/Neo4j 2023.01.14

MongoDB

쌓아놓고 삭제가 없는 경우에 적합하다. ex) 로그 데이터, 이벤트 참여 내역, 세션 트랜잭션이 필요한 금융, 결제, 빌링, 회원정보등은 RDBMS를 사용해야한다. 도큐먼트 데이터 모델 속성의 이름, 값으로 이루어진 쌍의 집합 속성은 문자열/숫자/날짜 배열/다른 도큐먼트를 지정할 수 있다. 하나의 document에 필요한 정보를 모두 담는다. one query로 모두 해결이 되게 collection model 설계가 필요 Join 불가 tags는 배열, comment는 배열 안에 도큐먼트를 값으로 가지고 있는 것을 볼 수 있다. MongoDB 장점 빅데이터 처리 특화 Memory Mapped를 사용 데이터 쓰기 시에 OS의 가상 메모리에 데이터를 넣은 후 비동기로 디스크에 기록 Schema-less 구조..

DB/MongoDB 2023.01.13

MongoDB 설치

https://www.mongodb.com/try/download/community MongoDB Community Server 다운로드 링크 사용하는 OS에 맞춰서 다운로드한다. 기본 설정으로 진행했다. MongoDB Compass는 MongoDB GUI다. MySQL의 Workbench 같은거다. 설치 시작 설치 중에 애플리케이션을 닫으라는 알림이 떠서 브라우저를 다 닫았다. 나는 Yes를 눌러서 컴퓨터를 바로 재부팅했다. 나중에 재시작할거면 No를 선택하면 된다.

DB/MongoDB 2023.01.13

Sharding

Sharding을 왜 할까? 과거에는 CPU 또는 Memory 사이즈를 증설하여 성능 이슈를 해결 최근 Web 서비스에서 데이터 사이즈가 급증 ➡️ 서버 성능 고도화만으로는 한계가 있다. 다수 장비에 데이터를 분산 위치하여 데이터를 처리하는 Sharding을 하게 됨 Sharding 크게 분할과 복제로 나눈다. 대규모 데이터베이스를 더 작고 빠르고 더 쉽게 관리되는 부분으로 분리 shard는 전체의 작은 부분 논리 shard가 다른 노드에 저장되면 물리적 shard다. 하나의 물리적 shard는 다수의 논리적 shard를 포함할 수 있다. shard는 자율적이고 같은 데이터나 컴퓨팅 자원을 공유하지 않는다. 모든 shard의 데이터는 논리적 데이터 집합을 나타낸다. Sharding의 장점 데이터베이스 확..

DB 2022.10.17

SQL Injection

SQL 인젝션 DB와 연동된 web application에서 공격자가 조작된 질의문을 삽입해서 웹 서비스의 데이터베이스 정보를 열람/조작할 수 있는 취약점 ex) SELECT * FROM USERS WHERE name='test' And password='123' or '1'='1' Parameter Binding 출발지에서 목적지로 전송되는 정보다. 출발지에서 가져온 name과 value를 가지고 있다. object key 또는 attribute values는 parameter binding에 의해 전달된다. Spring Data JPA는 Parameter Binding을 사용한다. 예시) String prepareStatementQuery="SELECT * FROM USERS WHERE name=? ..

DB 2022.08.30

Redis Class 및 Interface | 어노테이션 | redis-cli | 메소드

✨ Class 및 Interface 정리 Interface RedisConnectionFactory Thread-safe factory of Redis connections. Class LettuceConnectionFactory Luttuce를 기반으로 연결을 생성하는 Connection factory Class RedisTemplate object와 binary data 사이에 자동으로 serialization/deserialization을 수행한다. thread-safe하다. Interface CacheManager 스프링의 중심 캐시 매니저 SPI SPI는 Synchronous serial communication 주로 임베디디 시스템에서 근거리 통신에서 사용되는 인터페이스 사양 Class Red..

DB/Redis 2022.07.27

인덱스

인덱스(Index) 자료를 쉽고 빠르게 찾을 수 있도록 만든 데이터 구조 B-tree 구조 인덱스는 WHERE 절에 자주 사용되는 속성이어야 한다. 인덱스는 ORDER BY 절에 자주 사용되는 속성이어야 한다. 인덱스는 조인에 자주 사용되는 속성이어야 한다. 조건절이 없다면 인덱스는 사용되지 않는다! 단일 테이블에 인덱스가 많으면 속도가 느려질 수 있다.(테이블 당 4~5개가 적절) 속성이 가공되는 경우 사용하지 않는다. INSERT / UPDATE / DELETE가 자주 발생하지 않는 컬럼 속성의 선택도(1/서로 다른 값의 개수)가 낮을 때 유리하다. (=카디널리티가 높은 것) 데이터의 양이 별로 없거나 데이터 값이 몇 종류 안 되면 인덱스가 없는 게 더 빠를 수 있다. 결합 인덱스는 순서가 중요하다...

DB 2022.07.24

[Error] ERR wrong number of arguments for 'zrangebyscore' command

키의 값을 조회할 때 데이터 타입에 따라서 명령어가 다르다. get은 키의 값이 string일 때 쓴다. zrangebyscore는 키의 값이 sorted set일 때 쓴다. 키의 값 타입을 조회한다. type 키이름 참고 👇 https://stackoverflow.com/questions/37953019/wrongtype-operation-against-a-key-holding-the-wrong-kind-of-value-php WRONGTYPE Operation against a key holding the wrong kind of value php Hi I am using Laravel with Redis .When I am trying to access a key by get method then ..

DB 2022.07.23

[ERROR] java.sql.SQLException: Field 'title' doesn't have a default value

java.sql.SQLException: Field 'title' doesn't have a default value 처음에는 title 컬럼을 not null에서 null로 변경해주니 해결 @Column(name="post_id", nullable=false) private String title; 진짜 원인은 이 부분에 있다. post 엔티티에 title의 컬럼이 post_id로 해놨네 어쩐지 title에 안 들어가고 post_id로 들어가더라..(언제 저렇게 한거지??) 컬럼 title을 not null로 해놔서 에러가 생긴거였다. name="post_id" 없애고, post_id 컬럼도 삭제했다. 참고 👉 https://wickedmagic.tistory.com/534 [MySQL] Field '..

DB 2021.11.21
반응형