DataBase/Mysql 19

Mysql 성능 조회 - Explain 실행 계획으로 쿼리 성능 최적화하기

Mysql 에서 쿼리 성능을 조회하는 방법에대해서 기록합니다. SQL 성능 조회 방법 MySql 에서는 쿼리 실행계획을 봄으로써, 쿼리의 성능을 예측할 수 있습니다. 쿼리 실행계획 조회 방법은 굉장히 간단합니다. explain 쿼리문~~~ 이렇게 간단하게 쿼리문 앞에 "EXPLAIN" 이라는 키워드만 붙혀준 후 실행시켜주면 됩니다. Query Plan 이런걸, 쿼리 플랜(Query Plan)이라고 하는데, Query Plan이란, SQL 관계형 데이터베이스 관리 시스템의 데이터 접근에 사요외는 순서에 대한 순서 집합 💡 즉, 쿼리가 데이터에 접근하는 동작과정과 접근 계획이라고 볼 수 있을 것 같습니다. 쿼리 실행계획에는 다음과 같은 정보들을 보여주는데 각각의 실행계획이 의미하는 바는 다음과 같습니다. 항..

DataBase/Mysql 2022.08.11

[MySql] View Table 개념, 가이드, 성능, 조인 + Spring View Table 사용

[목차] 뷰 테이블이란? 가상테이블이란 뷰 테이블의 데이터 동기화? 뷰 테이블 생성 및 조회 시 동작 과정 뷰테이블 쓰는 이유 및 뷰테이블 성능 복합 뷰 테이블 (view table join) 뷰 테이블 장, 단점 뷰테이블 유용하게 사용될 떄 1. SQL View Table 이란 📌 뷰(View)란 데이터베이스에 존재하는 일종의 가상테이블입니다. 가상 테이블이란 이름 그대로 실제 데이터를 가지고 있지않은 테이블 의미합니다. 뷰 테이블은 데이터가 아닌, SQL 을 저장하고 있으며 그렇기때문에, 이름 그대로 View, 즉 데이터를 보여주기만하는 테이블이다. 로 이해할 수 있을 것 같습니다. VIEW와 TABLE과의 차이점은 그냥 TABLE은 실질적인 데이터가 있지만 VIEW는 데이터가 없고 SQL만 저장한다..

DataBase/Mysql 2022.08.03

[MySql] mysql 다중 문자열 치환 - Replace & case 쿼리

컬럼의 상태코드 값에 따라, 특정한 문자열로 치환해서 표현하라는 온보딩 과제를 받았습니다. ex) 테이블의 CODE 는 상품 카테고리이다. 0은 사료, 1는 간식, 2은 영양제, 3는 용품 그외는 ETC로 표시하라. 조건에 따라 컬럼의 값을 여러 문자열로 치환해야하는 쿼리문을 작성해한다고 생각했습니다. 처음엔 Replace 를 생각했지만, 성능도 안나올 거 같고, 뭔가,,,, 뭔가 아닌거같다는 느낌적인 느낌이 들었습니다 그 뒤에 Mysql CASE WHEN 을 알게되어 문제를 해결하였습니다. 1. SQL REPLACE 특정 조건의 문자열을 단일 치환하는 기능을 수행하는 sql문 입니다. 특정 조건이니, 정규표현식도 가능합니다. sql replace 사용방법 예시 select code, replace(co..

DataBase/Mysql 2022.07.21

MySql orderBy null first /null last 정렬

mysql 에서 orderby 시, null 값이 먼저나오는 null frist한 모습을 보여주는데, null 값은 뒤로가고, 그게 아닌 값들에 대한 오름 차순 정렬값이 먼저나왔으면 했다. select * from goods order by out_sequence; 오라클은 null frist 랑 null Last가 되는데, mysql은 왜 안되냐 ㅡㅡ select * from goods order by out_sequence is null asc, out_sequence asc; //똑같다 select * from goods order by out_sequence is null, out_sequence; *참고 https://ismydream.tistory.com/158

DataBase/Mysql 2022.07.05

[SQL] 서브쿼리문, Subquery 사용하기

1) Subquery란? 쿼리 안의 쿼리라는 의미입니다. 하위 쿼리의 결과를 상위 쿼리에서 사용하면, SQL 쿼리가 훨씬 간단해지는 장점이 있따. ex) kakaopay로 결제한 유저들의 정보 보기 → 우선, 이렇게 볼 수 있겠죠? users 와 orders 의 inner join으로! select u.user_id, u.name, u.email from users u inner join orders o on u.user_id = o.user_id where o.payment_method = 'kakaopay' 같은 결과를 서브쿼리를 이용해서 더 직관적으로 보기 select u.user_id, u.name, u.email from users u where u.user_id in ( select user_..

DataBase/Mysql 2022.01.06

[SQL] 테이블 연결 , Join 과 Union

1) Join 이란? 두 테이블의 공통된 정보(Key값)을 기준으로 테이블을 연결해서 한 테이블처럼 보는 것 ex) user_id 필드를 기준으로 users 테이블과 orders 테이블을 연결해서 한 눈에 보고 싶다! 👉 이럴 때를 대비해서 무언가 연결된 정보가 있을 때, user_id 처럼 동일한 이름과 정보가 담긴 필드를 두 테이블에 똑같이 담아놓는데 이런 필드를 두 테이블을 연결시켜주는 열쇠라는 의미로 'key'라고 부른다. 2) Join의 종류: Left Join, Inner Join 1. Lefg Join Left join은 A테이블에 B테이블이 매핑되는 부분이 붙혀진, 모든 A테이블의 데이터가 조회됩니다. 2. Ineer join ineer join은 B테이블과 매핑되는 A테이블의 데이터(교집..

DataBase/Mysql 2022.01.06

[SQL] SQL 쿼리문, 통계 데이터 내기

1) Group by : 범주의 통계내기 select name, count(*) from users group by name; group by name: name이라는 필드에서 동일한 값을 갖는 데이터를 하나로 합쳐줍니다 select name, count(*): 이름과 count(*)를 출력해 주는데, 여기서 count(*)는 group by로 합쳐진 데이터의 개수를 세어준다 2) Group by 기능 알아보기 (최소, 최대, 평균, 합계) 각각, min, max, avg, sum 키워드로 접근한다. select 필드명, min(최솟값을 알고 싶은 필드명) from 테이블명 group by 범주가 담긴 필드명; 3) Order by : 정렬 실행결과를 정렬하고 싶을 때, orderby를 사용한다! sel..

DataBase/Mysql 2022.01.06

[SQL] Select 쿼리문, Where절 연습하기

Select문과 같이쓰는 문법들 정리! 1) 같지 않음 (!=) select * from orders where course_title != "영어"; 2) 범위 조건 (between) select * from orders where data '07-13' between '08-12' 3) 포함 조건 (in) select * from orders where week in(1,3); - 1,3 주차 주문 4) 패턴(문자열 규칙) 조건 (Like) select * from users where email like '%daum.net'; 🍯Like의 다양한 사용법 where email like 'a%': email 필드값이 a로 시작하는 모든 데이터 where email like '%a' email 필드값이 ..

DataBase/Mysql 2022.01.05

Mysql 중복 데이터 제거(같은 테이블 유사 데이터 제거)

db데이터를 조회했을 때 데이터가 중복으로 잘못 들어갔을 때 정말 화가난다. ㅂㄷㅂㄷ 중복된 행을 지우기 전에 먼저 중복이 존재하는지 알아야한다. Select 중복 데이터 조회 select * from CCTV a, CCTV b where a.name > b.name and a.lat = b.lat and a.lon = b.lon; 나는 lat 과 lon이라는 컬럼을 가지는 테이블 중에 중복된 데이터를 지우고자 한다. 간단하게 설명하면 a.name > b.name 은 auto_increment 속성을 가지는 ID이다. 나중에 들어온 값만 지우기 위한 조건 문이다. 뒤에는 and 연산자를 이용해 sql 다중 조건 연산을 해주었다. Delete 중복 데이터 삭제 delete a from AllTimeShop..

DataBase/Mysql 2021.09.23

Mysql 테이블 이름 변경하기 (Table RENAME)

단일 테이블 이름 변경 (RENAME) RENAME TABLE old_table TO new_table; ex) rename table 24shop to AllTimeShop; 단일 테이블 이름 변경 (ALTER) ALTER TABLE old_table RENAME new_table; RENAME 과 ALTER RENAME의 차이 RENAME을 사용하면 다수의 테이블이름 변경이 가능하다. 다수 테이블 이름 변경 RENAME TABLE old_table1 TO new_table1, old_table2 TO new_table2, old_table3 TO new_table3;

DataBase/Mysql 2021.08.05
반응형