본문 바로가기

SQL4

[SQL] mediumtext 가 준 교훈.. 한 테이블에서 필드 타입을 text 가 아닌 mediumtext를 사용하고 있었습니다. 처음에는 괜찮았는데 어느 순간 테이블에 데이터가 쌓이면서 단순 select 쿼리도 속도가 너무 느리다는걸 느꼈습니다. 예) 초반 0.5초 -> 현재 1분 44초... 그래서 여러가지를 분석해봤습니다. 단순 raw query 에 대한 문제인지 아닌지 부터 시작해봤죠... 기본적으로 vscode에서 다루는 orm 은 sequelize 이용하고 있어서 이걸로, sequelize 쿼리 / raw 쿼리 둘다 진행 해봤는데 속도는 매우 빠르게 나왔습니다. 그러나, DB에서 raw 쿼리를 진행하면 1분 넘도록 실행하더군요...  왜 orm은 빠른데 DB 프로그램은 느리냐!!! 라는 걸 봤는데 sequelize-auto를 써서 db.. 2025. 3. 21.
[SQL] WITH 쿼리 DB 데이터에서 중복된 값들 을 group by 시켜서 가져와 그 중 desc를 쓰고 싶었으나... group by 를 하게되면 항상 asc 형태를 가져와 원하는 값을 못사용 하는 경우가 있었습니다. 그래서 방법을 찾아보니 WITH 함수가 있다고 하더라구여!! WITH 문법은 SQL에서 공통 테이블 표현식(CTE, Common Table Expression)을 정의하는데 사용됩니다. 이를 통해 복잡한 쿼리나 서브쿼리를 보다 간단하게 작성하고, 반복적으로 사용해야 하는 쿼리 부분을 재사용할 수 있습니다.WITH new_data AS ( SELECT column1, column2 FROM table WHERE conditions)SELECT column1, column2FROM new_dat.. 2024. 9. 9.
10.10 ~ 10.16 WIL ORM? -> Object Relational Mapping 즉, 객체-관계-매핑 의 약자 -> 객체 : 클래스, 관계 : 테이블 이걸 연결 해줍 -> 객체 모델과 관계형 모델간의 불일치하는게 존재 -> 중개자 역할을 함 SQL? -> 하나의 테이블로 기록, 테이블에 스키마 추가를 할 시, 새로 테이블 작성해야함 -> 데이터 성능이 좋아서 탐색, 분류, 정렬이 좋음 -> 비용 최소화 -> 테이블 합치게되는 경우(join), 매우 복잡해질 수 있음 noSQL? -> key-value값을 형성 -> sql에서 쓰는 쿼리문을 사용안함 -> 스키마에 대한 정의가 없어서 막 추가 가능 -> 대용량 데이터 처리 및 축적 해두기 좋음 -> 검색에 유리 [ 여러 시험이 있던 관계로 짧게 작성했습니다 ㅜㅜ ] 2022. 10. 19.
게시글, 댓글, 좋아요 형태 만들기 이 글은 Mongoose가 아닌 mySQL 로 작업을 했으므로 이 점 미리 알고 계시기 바랍니다. 밑에 링크는 ERD Diagram을 보기 쉽게 만들었습니다. https://drawsql.app/teams/blog-2/diagrams/blog/embed https://drawsql.app/teams/blog-2/diagrams/blog/embed drawsql.app 요구사항 회원 가입 API 닉네임은 최소 3자 이상, 알파벳 대소문자(a~z, A~Z), 숫자(0~9)로 구성하기 비밀번호는 최소 4자 이상이며, 닉네임과 같은 값이 포함된 경우 회원가입에 실패로 만들기 비밀번호 확인은 비밀번호와 정확하게 일치하기 닉네임, 비밀번호, 비밀번호 확인을 request에서 전달받기 데이터베이스에 존재하는 닉네임을.. 2022. 10. 11.