Back-end/Database

    열심히 정리해본 Real MySQL 10장. 실행 계획

    그동안 책을 많이 읽었지만.. 따로 정리하면 시간이 오래 걸려서 읽기만 했다. 이해하기보단 따라 적는 것에 의의를 두게 되는 것 같기도 하고ㅠ하지만 리마큐 10장은 오랜만에 열심히 노션에 정리해 보았다. 유익한 내용들~10.1 통계 정보: 쿼리 최적화를 위해 MySQL 옵티마이저가 참조하는 메타데이터, 테이블마다 존재하는 통계 정보를 별도 테이블에 모아둔 것통계 정보가 정확하지 않다면 엉뚱한 방향으로 쿼리를 실행할 수 있기데 통계 정보는 매우 중요함ex. 통계 정보는 10건 미만이래서 풀스캔 했는데 사실 1억건이 있는 경우MySQL 5.6 이후부터는 각 테이블의 통계 정보를 Innodb_index_stats, Innodb_table_stats 테이블로 관리할 수 있게 개선됨 → 재시작해도 유지 가능 통계..

    [Database/MySQL] Youtube 유튜브 한방쿼리 작성

    MySQL + Node.js로 Youtube를 따라 만들며 공부했을 때 직접 설계했던 ERD이다. 💡 영상 조회 select v.videoName, v.videoPlus, u.userName, up.userProfile, # (select count(vv.videoViewIdx) as viewNum # from videoview vv left join video v on vv.videoIdx = v.videoIdx # group by v.videoIdx) as viewNum, # 조회수 ifnull(vieww.viewNum, 0) as viewNum, (select count(subUserIdx) from subscription s group by s.userIdx having s.userIdx = ?)..

    [Database] 데이터베이스와 SQL - DDL / DML / DCL

    Database & SQL (Structured Query Language) 데이터베이스는 엑셀과 비슷한 구조이다. 엑셀에서의 페이지 단위인 sheet가 데이터베이스의 table과 대응되고, sheet안의 데이터들이 각 table안의 데이터들이 된다. 이러한 데이터베이스는 SQL이라는 언어로 표현이 되고, SQL은 크게 세가지 종류의 명령어로 나눌 수 있다. 💡 1. DDL (Data Definition Language) → 데이터베이스의 테이블들을 정의하는 명령어이다. CREATE : 테이블 / 데이터베이스 생성 DROP : 테이블 / 데이터베이스 삭제 ALTER : 테이블 수정 💡 2. DML (Data Manipulation Language) → 테이블의 데이터들을 조작하는 명령어이다. SELECT..