데이터베이스
-
MySQL datetime의 시간 반올림데이터베이스/MYSQL 2024. 6. 6. 02:29
최근 데이터 생성 api를 호출하고 조회 api를 호출하였을때, false로 반환되어야 하는 반환값이 true로 반환되고 있는 문제가 발생했다. 문제상황해당 반환값은 LocalDateTime의 데이터를 주어진 시점(LocalDateTime)과 비교하여, 현재시점 이후라면, true를 이전이라면 false를 반환하도록 로직이 구현되어있었다. 예시 코드는 다음과 같다. @Entityclass Test ( @Column(columnDefinition = "datetime(6)") val time: LocalDateTime) : BaseEntity() { fun isAfter() = time.isAfter(LocalDateTime.now())} 분명 데이터를 생성하는 시점에 Loca..
-
mysql datetime과 timestamp의 차이데이터베이스/MYSQL 2023. 10. 31. 00:41
datetime과 timestamp는 모두 날짜와 시간을 저장하는 mysql의 데이터 타입이지만 차이점이 존재한다. datetime timestamp 데이터 날짜와 시간을 함께 저장 기본 포맷 ‘YYYY-MM-DD HH:mm:ss’ ‘YYYY-MM-DD HH:mm:ss(.FFFFFF)’ 범위 ‘1000-01-01 00:00:00’ ~ ‘9999-12-31 23:59:59’ ‘1970-01-01 00:00:01’ UTC ~ ‘2038-01-19 03:14:07’ UTC 특징 시스템의 TIME_ZONE과 관계없이 절대적인 값이 저장 시스템의 TIME_ZONE에 의존하여 값이 변경됨 저장 형태 문자형 숫자형 (1970년 1월 1일 기준으로 지난 초단위 시간) 저장 공간 8bytes 4bytes 필드 NOT N..
-
HikariPool- Failed to validate connection warning 해결하기데이터베이스/MYSQL 2023. 7. 15. 17:24
운영하는 서비스에서 30분 간격으로 HikariPool- Failed to validate connection warning 오류가 발생했다. 문제 상황 운영환경에서는 datadog에서 5분동안 warn 이나 error 로그가 10개 이상 발생하면 슬랙을 이용해서 오류 메세지를 보내도록 설정해두었는데, 동일한 warning이 resolve 후에도 30분 간격으로 발생해 오류 alert가 발생하고 있었다. data dog에서 확인해보니 오류 메세지는 다음과 같았다. HikariPool-1 - Failed to validate connection software.aws.rds.jdbc.mysql.shading.com.mysql.cj.jdbc.ConnectionImpl@5f4fcf76 (The active S..
-
ELK스택 기본사용법 - ③ Logstash + 실제 데이터 활용해보기데이터베이스 2022. 10. 31. 16:57
저번 시간에 이어 이번에는 ELK 스택의 Logstash 활용하는 방법을 정리해 보았다. 학습한 내용과 사진, 코드는 모두 다음의 강의에서 참고하였다!🙌 참고한 강의 (플레이리스트) ↓ https://www.youtube.com/watch?v=3iA-ncqAqYE&list=PLVNY1HnUlO24LCsgOxR_eK2Yi4sOgH9Pg&index=19 github : 강의 참고 자료 ↓ https://github.com/minsuk-heo/BigData GitHub - minsuk-heo/BigData Contribute to minsuk-heo/BigData development by creating an account on GitHub. github.com 이전 블로그 (Kibana) ↓ https:/..
-
ELK스택 기본사용법 - ② Kibana데이터베이스 2022. 10. 31. 09:46
저번 시간에 이어 이번에는 ELK 스택의 Kibana를 활용하는 방법을 정리해 보았다. 학습한 내용과 사진, 코드는 모두 다음의 강의에서 참고하였다!🙌 참고한 강의 (플레이리스트) ↓ https://www.youtube.com/watch?v=3iA-ncqAqYE&list=PLVNY1HnUlO24LCsgOxR_eK2Yi4sOgH9Pg&index=19 github : 강의 참고 자료 ↓ https://github.com/minsuk-heo/BigData GitHub - minsuk-heo/BigData Contribute to minsuk-heo/BigData development by creating an account on GitHub. github.com 이전 블로그 (ElasticSearch) ↓ h..
-
ELK스택 기본사용법 - ① ElasticSearch데이터베이스 2022. 10. 26. 13:46
ELK (Elastic search, Logstash, Kibana) 스택에 대해서 들어보기는 했지만 어떻게 동작하는지 몰라서 간단한 강의를 듣고 실습해 보았다! 학습한 내용과 사진, 코드는 모두 다음의 강의에서 참고하였다!🙌 참고한 강의 (플레이리스트) ↓ https://www.youtube.com/watch?v=3iA-ncqAqYE&list=PLVNY1HnUlO24LCsgOxR_eK2Yi4sOgH9Pg&index=19 github : 강의 참고 자료 ↓ https://github.com/minsuk-heo/BigData GitHub - minsuk-heo/BigData Contribute to minsuk-heo/BigData development by creating an account on Git..
-
동시성 제어데이터베이스 2022. 8. 18. 22:36
동시성 제어 동시성 다중 사용자 환경에서 동시에 여러 트랜잭션이 수행될 때 데이터베이스의 무결성 및 일관성을 유지 하고 트랜잭션의 직렬화 수행을 보장 하도록 트랜잭션 간의 데이터 접근을 제어하는 것을 말하며, 다중 사용자 환경을 지원하는 DBMS의 경우에는 반드시 동시성 제어(병행제어)가 지원되어야 한다. 동시성 제어가 이루어 지지 않는다면 ? 동시성 제어가 이루어 지지 않아 데이터 베이스의 직렬성이 결여될 경우 다음의 문제점이 발생할 수 있다. 문제점 설명 갱신손실 (Lost Update) - 두 개 이상의 트랜잭션이 한 개의 데이터를 동시에 갱신(Update)시 발생 - 하나의 트랜잭션이 갱신한 내용을 다른 트랜잭션이 덮어씀으로 갱신이 무효화되는 경우 - 트랜잭션 종료 이전에 다른 트랜잭션이 갱신을 ..
-
조회 성능 개선하기 ( ③ DB 최적화, Replication )데이터베이스 2022. 4. 28. 01:08
인덱스 설계에 이어서 이번엔 DB 최적화 부분과 JPA와 함께 MySQL Replicatioin을 구현하는 방법에 대해서 배웠다. DB 최적화 대상 Connector (Client) MySQL 서버에 접근하기 위해 Application에서 설치하여 사용할 수 있는 모듈들 이를 사용하여 MySQL 서버와 통신할 수 있음 복수 건의 레코드를 한번의 호출로 집합처리 하거나 두 개 이상의 쿼리를 한 쿼리로 통합 처리 (호출수 줄이기) MySQL의 인스턴스 부분 Client로 부터 들어온 쿼리를 분석하고 최적화하여 실행계획을 만들고 필요한 경우 메모리에 cache JDBC Statement : 쿼리 문장을 분석, 컴파일, 실행단계 캐싱 PreparedStatement : 처음 한번만 세단계를 거친 후 캐시에 담아..