728x90

MySQL 5

[MYSQL] workbench에서 private subnet에 있는 RDS 접근 방법

이전에 각 인스턴스를 private subnet에서 새로 구축하면서 aws에서 권장하는 3tier architecture 구조에 점점 가까워지고 있다. 아래 스크린샷을 통해 구조를 확인할 수 있다. 이 중에서 오늘 확인할 부분은 가장 아래에 있는 RDS에 관련된 부분이다. 이전에 이 과정에 대해서 했던 식당 비유의 연장선으로 다시 설명해보겠다. 서두 우리는 식당을 개업했는데, 코로나 등 여러 안전상의 이유로 배달로만 운영할 것이다. 그래서 1번에 보이는 private subnet이라는 지하 어딘가에 식당을 차렸는데 지도에 검색해도 나오지 않는다. 주인도 이 식당이 어딨는진 알지만 쉽게 들어오지 못한다. 꼭 카드키가 필요하다. 이 카드키가 pem파일이라고 생각하면 된다. 오늘은 해당 내용이 아니므로 관련된..

[mysql] view의 장단점, 성능에 대한 고찰

발단 회사에서 포스트맨을 확인하고 로컬로 각 api들을 돌려보는데.. 게시글을 조회, 검색하는 로직에서 너무 오래걸리는 것을 확인했다. 그냥 단순한 게시판인데 값을 가져오는데 평균 1200~2000ms정도가 소요되었다. 아무리 생각해도 이상하다. 코드를 확인했더니 서비스 로직에서 직접 sql문을 사용하여 쿼리를 넣고 있었다. SQL을 봐도 간단하게 SELECT ~~~ FROM view_~~~ 이런식으로 되어있는데 오래걸릴 수가 있나? 파일을 보내는 것도 아니고 단순 json인데.. 의심해볼 수 있는 것은 view다. 회사코드를 공개할 수는 없지만, view의 장단점과 성능저하가 왜 일어났는지 포스팅하려 한다. 결론적으로 view 대신 다 뜯어내고 join했을 때 1200~2000ms에서 5~40ms로 성..

개발/DB 2023.10.17

[TypeORM] Nest.JS 없이 Node.JS + TypeORM 기본 세팅

기존에는 SQL문을 익히고, DB와 오고가는 과정을 확인하기 위해 ORM 없이 DB에 접근했다. 이번에 서비스를 하나 만들어보면서 경험을 위해 TypeORM으로 마이그레이션을 해보았다. 구글링하면서 배우면서 가장 많이 본 내용은 버전에 관련한 내용이였다. typeORM이 업데이트를 하면서 deprecate된 것이 워낙 많아서 기존 그대로 사용하는 유저들이 많다고 한다. 내가 포스팅을 남기고자 하는 이유는 분명 많은 유저들이 있을텐데.. 업데이트된 버전을 사용하는 사람들은 정말 대부분이 Nest.js를 사용하는 것 같았다. typeORM이 업데이트된 내용 중에 가장 대두되는 부분이 repository를 세팅하는 부분이였다. 아래 포스팅을 통해 업데이트하면서 바뀐 이유를 알고 접근하는데 도움이 되었다. ht..

개발/DB 2023.08.02

[mySQL] root 비밀번호 오류 초기화 간단설명, 초기화해도 안되는 경우

mysql -u root로 접속하게 되면 처음에는 바로 접속이 되지만, 비밀번호를 설정하고 나서는 당연히 비밀번호를 입력해야 접속할 수 있다. 내가 늘 쓰는 비밀번호를 입력했음에도 여러 시도를 해도 안돼서 비밀번호를 초기화하는 방법을 구글링해서 시도했다. 아주 간단하게 설명해보겠다. root 패스워드 재설정 1. mysql.server stop mysql 서버를 중지한다. 2. mysql.server start --skip-grant-tables mysql 서버를 재시작하는데, 해당 옵션을 주면 root 인증없이 서버에 접근할 수 있다. 3. mysql -u root 옵션을 부여한 다음 시작했기 때문에 비밀번호는 생략된다. 4. update mysql.user set authentication_strin..

개발/DB 2023.07.05

[MySQL] 내가 보기 위해 만든 SQL CRUD 구문 정리

0. 들어가기 전에 먼저 database, table이 만들어져 있어야 한다. CREATE 뒤에 만들고싶은 것을 입력하면 되고, TABLE의 경우 괄호 안에 조건들을 자세히 입력할 수 있다. 만든 후 원하는 database, table을 하려면 각각 SHOW에 붙여서 입력해준다. CREATE한 후, SHOW TABLES;를 입력하면 다음과 같이 박스가 등장한다. topic이라는 table을 만들고, DESC 을 입력하면 다음과 같이 반환하는데, 만든 table의 구조를 확인할 수 있다. 1. INSERT - 관계형 데이터베이스의 테이블에 새로운 데이터를 삽입(저장)할 때 사용한다. - CRUD의 Create에 해당하는 역할을 수행한다. *INSERT INTO 테이블명(컬럼1, 컬럼2, ...) VALUE..

개발/DB 2023.05.29
728x90