Database

· Database
🪄 [1단계] mysql 컨테이너의 sql 백업파일 생성 아래 예시코드를 통해 mysql 컨테이너의 sql 백업파일을 생성할 수 있다. (경로는 맘대루..) docker exec mysql mysqldump -u"유저" -p"패스워드" mysql > ~/backup/backup-db-$(date +%Y-%m-%d).sql 이 코드를 담은 backup.sh를 만들면, backup.sh 실행만으로 mysql 컨테이너의 데이터파일인 .sql을 생성해낼 수 있다. 매일 꾸준히 백업하고 싶으니까 스케줄러를 등록해두자. 🪄 [2단계] cron 스케줄러 등록 다음과 같이, 방금 만든 backup.sh 실행하는 크론탭을 등록하자. crontab -e 명령으로 편집하자. *편집창이 뜨면 아래 스케쥴을 추가하면 된다. *..
· Database
Intro DB에 데이터 양이 많다면 쿼리 수행이 느리다. 쿼리의 성능을 높이기 위해 인덱스를 잘 활용하는 것이 좋다. "인덱스: DB 테이블 검색 성능을 높여주는 자료구조" . . ★ 참고로, 아래 영상의 도움을 크게 받아 정리했다. 강추한다. https://www.youtube.com/watch?v=iNvYsGKelYs INDEX란? 테이블 검색 성능을 높여주는 자료구조라고 했다. 어떤 자료구조길래? . . person 테이블에서 age가 25인 행을 찾고 싶다. 그렇다면 다음과 같은 select문이 익숙할 것이다. SELECT * FROM person WHERE age = 25 그런데 데이터가 막 10억개로 무지 많은 상황에서 모든 행을 다 뒤져 찾는다면, age = 25를 찾는 것이 무지 느리다...
· Database
⭐ 설정파일을 잘못 작성 (create-drop의 위치) 문제 원인 : jpa 설정을 JpaProperties에서 가져왔기 때문에, jpa의 create-drop 설정은 jpa의 properties 아래에 둬야 의도에 맞다. ∴ JpaProperties에서 설정을 가져올 때의 ddl auto 설정의 올바른 위치: jpa: properties: hbm2ddl: auto: create-drop ∨ create-drop이 jpa의 properties 아래로 가야 한다. ∨ JPA에 필요한 Bean을 직접 주입하는 실습이었다. 접은글의 코드를 보면, 위와 같은 jpa설정을 JpaProperties에서 가져오고 있다. 더보기 아래 코드를 보면 JpaProperties에서 정보를 가져옴을 알 수 있다. @Bean ..
· Database
mysql 데이터베이스 서버 상태 확인하기 데이터베이스의 환경변수값, 상태변수값을 조회하여 서버의 상황을 체크할 수 있다. ■ 환경변수 조회 : show variables └> 환경변수값을 조정해서 mysql의 상태 제어 가능 ■ 상태변수 조회 : show status └> 상태변수값을 통해 mysql의 각종 상태(동작정보)를 확인 가능 ■ 환경변수 조회 show variables 쿼리 결과이다. 각종 환경변수 값을 확인할 수 있다. ■ 상태변수 조회 show status 쿼리 결과이다. 각종 상태변수 값을 확인할 수 있다. Thread 관련 상태변수 값 확인해보기 db서버의 thread 관련 상태변수 값을 확인해보자. show status like '%Threads%'; 나는 지금 DB connecti..
· Database
다음과 같은 논리적 상속관계를 DB상에 물리적으로 어떻게 나타내야하는지 고민했다. 조인테이블 전략을 사용하였다. (장단점은 맨 아래에 요약) 참고) Join Table 전략 : 여러 테이블 사용 - 관리해야 할 테이블이 많아짐 - 객체지향스럽지 않고 복잡함 => Single Table 전략을 현업에서 좀 더 많이 사용하기도 함 Join 전략으로 매핑하면 다음과 같이 superclass와 subclass의 table이 구성된다. Springboot를 통해 상속관계 DB매핑 적용하기 super class ▶ 참고: @DiscriminatorColumn 지정은 상속관계매핑의 JoinTable 전략에서 필수가 아니다. (본인도 필요가 없어져서 나중에 없앰) 참고로, 하나의 테이블로 상속관계가 매핑되는 Singl..
· Database
문제 상황: 내 프로그램은 파일(storage.ser)에다가 object를 동적으로 write/read하는 프로그램이다. 첫번째 실행에서 os.writeObject()로 어떤 파일(.ser)에 동적으로 writeObject() 여러번 하고 readObject()했을 때는 아무 문제가 없었다. 그런데 프로그램 종료후 다시 실행한 두번째 실행에서 해당 파일에 이어서 wirteObject()하고 다시 readObject하는 상황에서, 이어서 writeObject()한 부분은 전혀 읽어오지 못했다. 그냥 단순하게 이런 코드들을 사용한 건데 왜 문제가 생겼을까? os = new ObjectOutputStream(new FileOutputStream(fileName, true)); os.writeObject(v);..
· Database
⭐ FK 컬럼 삭제가 안되는 상황 테이블에서 외래키 컬럼을 다음 방법으로 지우려고하면 문제가 발생한다. 사례1▶ FK컬럼은 일반 컬럼처럼 제거할 수 없음 즉, 아래와 같이 drop할 수 없다. ALTER TABLE DROP 사례2▶ FK를 삭제하려는 부적절한 쿼리문 아래와 같이 을 그대로 입력하는 것은 부적절한 방법이다. alter TABLE DROP FOREIGN KEY 다음과 같은 Error Code가 발생한다. 19:14:38 alter TABLE DROP Error Code: 1828. Cannot drop column '': needed in a foreign key constraint 'FK93exnhdf4698rqy4lmt5yapmr' 0.000 sec ⭐ 해결방법: 컬럼에 걸린 제약조건을 ..
히어로맛쿠키
'Database' 카테고리의 글 목록