DB 28

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

[MySQL] Error Code : 3780

alter table user_role add foreign key (role_id) REFERENCES role (id), add foreign key (user_id) references user(id); 외래키 추가하다가 에러가 떴다. Error Code: 3780. Referencing column 'user_id' and referenced column 'id' in foreign key constraint 'user_role_ibfk_2' are incompatible. 0.000 sec bigint 타입인줄 알았는데 아니었다. 타입을 통일시켜준 뒤에 문제를 해결했다. 참고 👉 https://journeytosth.tistory.com/97 [MySQL] FK 추가 - ERROR 3780 해결..

DB 2021.11.19

게시글 id

게시글을 삭제하면 그 번호가 없어져서 숫자가 연속적이지 않은 게 보기 싫었다. 게시글 번호는 데이터베이스에서 id 값을 가져왔었다. 삭제 할 때마다 데이터베이스의 id 값을 재조정해야하나??라고 생각했지만, 그럴 필요없음! https://wiki.modernpug.org/questions/8028785/%ED%85%8C%EC%9D%B4%EB%B8%94-row-%EC%82%AD%EC%A0%9C%EC%8B%9C-auto-increments-%EB%8B%A4%EC%8B%9C-%EC%93%B0%EB%8A%94-%EB%B2%95. 테이블 row 삭제시 auto increments 다시 쓰는 법. - Modern PHP User Group Confluence wiki.modernpug.org 데이터베이스의 id 값..

DB 2021.07.26

transaction

트랜잭션(transaction)은 DBMS가 데이터베이스를 다룰 때 사용하는 작업(프로그램)의 단위 트랜잭션은 장애 시 데이터를 복구하는 작업의 단위가 됨. 또한, 데이터베이스에서 여러 작업이 동시에 같은 데이터를 다룰 때 이 작업을 서로 분리하는 단위이기도 함. 트랜잭션은 전체 수행되거나 전혀 수행되지 않아야 한다. 💙 트랜잭션의 4가지 성질(ACID) 1. 원자성(Atomicity) : 트랜잭션에 포함된 작업은 전부 수행되거나 전부 수행되지 않아야 함 2. 일관성(Consistency) : 트랜잭션을 수행하기 전이나 후나 데이터베이스는 항상 일관된 상태를 유지해야 함 3. 고립성(Isolation) : 수행 중인 트랜잭션에 다른 트랜잭션이 끼어들어 변경 중인 데이터 값을 훼손하는 일이 없어야 함 4...

DB 2021.07.06

MySQL 실습

🍯 정리된 자료가 필요할 때 ~ cheat seat를 찾아보자 MySQL을 시작하는 방법 2가지 1. MySQL Command Line Client에 들어간다. 2. cmd에서 아래 파일 위치로 변경 cd C:\Program Files\MySQL\MySQL Server 8.0\bin mysql -uroot -p#root로 로그인, -p는 비밀번호 입력 root는 관리자 권한을 가지기 때문에 모든 권한이 뚫려있음. 중요할 때만 사용하고 평소에는 다른 이름으로 로그인하자 💗 명령어 방향키 ↑를 사용하면 이전 명령어 사용할 수 있음 CREATE DATABASE 이름; 데이터베이스 생성 create table 생성할 테이블명 like 기존테이블; 테이블 복사 DROP DATABASE 이름; 데이터베이스 삭제 S..

DB/MySQL 2021.05.25