본문 바로가기
반응형

CS/DataBase4

[MySQL] AWS RDS MySQL Too many connections 에러 프로젝트를 하던 중에 갑자기 위 에러가 떴다. 즉 모든 연결 가능한 커넥션들이 다른 clients 들에 의해 쓰이고 있다는 것이고 max_connect_errors 동안 커넥션에 실패하면 이후의 모든 커넥션이 블로킹이 되버린다. 일단 왜 커넥션을 확인해보니 현재 59개가 연결되어 있고 show variables like '%max_connections%'; 명령어를 통해 max_connections를 보니 60이였다. 참고로 이 RDS는 db.t3.micro이고 기본 max_connections는 66이라고 한다. 왜 커넥션 수가 증가 했는지도 파악하긴 해야겠지만 일단 당장 에러가 났으니 커넥션 수를 늘리려고 시도했다. 방법은 두가지인데 RDS 인스턴스 스펙을 db.t3.small로 올리던가(이러면 15.. 2023. 10. 5.
[SQL] SQL 특정 문자 제거하기 한창 회사에서 개발 중에 계좌번호를 입력했을 때 ' - ' 표시가 있어 중복으로 계좌번호가 입력되는 현상이 있어 수정 요청이 들어왔다. 1333-3333과 13333333은 같은 계좌인데 중복 등록 된다는 것. 그래서 데이터를 디비에 저장할 때 체크하는 과정을 거쳐야 했다. 쿼리 문에서 특정 문자를 제거 하여 체크하도록 하였다. 먼저 입력 받은 데이터에도 ' - ' 표시를 제거 했다. 그리고 데이터베이스에서 해당 계좌번호가 있는지 확인을 하는 쿼리를 날려야 하는데 이 때 where 조건에 함수를 추가해 ' - '를 없애게 했다. 이렇게 쿼리를 주게 되면 '-' 표시가 ''로 바뀌게 되어 공백 없이 숫자로만 조건을 걸 수 있다. 2023. 9. 20.
[postgresql] ERROR: relation does not exist 테이블 명 대소문자 이슈 해결법 그 동안 MySQL만 쓰다가 이번 프로젝트에서 새롭게 postgresql을 사용하게 되었다. 테이블을 만들고 데이터를 넣은 뒤 select 문을 실행했다. 일단 boardCategory라는 테이블은 분명히 만들었고 분명히 존재한다. 그런데 왜 테이블이 존재하지 않는다는 것일까. 에러로그를 자세히 보면 난 쿼리를 'boardCategory'로 날렸지만 실제론 'boardcategory'로 쿼리가 실행되었다는 것을 알 수 있다. postgresql은 기본적으로 테이블명에서 대문자, 소문자 혼용일 경우 대소문자를 구분을 안하고 다 소문자로 받아들인다. 따라서 테이블 명에 " "를 씌워주어야 한다. 이 큰 따옴표는 쿼리를 해석할 때 대소문자를 구별하라는 식별자라고 할 수 있다. 즉 소문자만 있으면 써도 되고 안.. 2023. 6. 13.
[DataBase]inner join과 left join의 차이 지금까지 개발을 하면서 제일 많이 썼던 JOIN 방식 중 두개의 차이를 알아보고자 한다. 보통 JOIN 연산의 경우 데이터를 가지기 위해 테이블을 합치는 경우가 많은데 이 때 inner join과 left join을 많이 쓰게 된다. 이 두가지 방식의 차이점을 알아보자. 예시를 위해 개발하고 있는 프로젝트의 게시판 테이블과 게시판 댓글 테이블을 사용해 예시를 들겠다. 게시판 테이블의 행은 106개이고 댓글 테이블의 행은 52개이다. LEFT JOIN left join은 outer join의 일종이다. 여기서 중요한건 outer join은 합집합을 의미한다는 것이다. 따라서 왼쪽에 있는 테이블의 모든 행을 조회하게 된다. 쿼리를 이렇게 날리게 되면 왼쪽에 있는 테이블인 board 테이블의 모든 행을 다 조.. 2023. 5. 12.
반응형