MySQL
-
Unique Key와 함께보는 DB TransactionMySQL 2024. 4. 22. 18:03
들어가기 전에데이터베이스에 설정된 Unique Key Column에 데이터를 넣는 과정 중 데이터가 제대로 저장되지 않는 문제를 다룬다 문제 상황유니크 키 (A, B, C) 가 설정되어 있습니다.위 제약조건은 A,B,C 세 열의 조합이 유일해야 합니다. A:1, B:1, C:100 등록한 경우: Duplicate entry `1-1-100` 오류 발생A:1, B:1, C:100 삭제 후 등록한 경우: 1분 정도 작업이 수행되다가 타임아웃 후 transaction rollback 발생삭제하고 등록했는 데 왜 안되지? ABC1110021100 ABC1110021100 문제 흐름과 해결 트랜잭션이 언두..
-
DB 인덱스(index) 를 알아보자MySQL 2023. 6. 5. 01:21
들어가기 전에 데이터베이스에 저장된 데이터를 가져올 때 index 를 설정하면 빠르게 스캔해 데이터를 가져올 수 있는데 정확히 어떤 이유가 있고 내부 동작방식은 어떠한지 알아보려한다. (MySQL 기준으로 작성됨) 데이터베이스 인덱스 데이터베이스 인덱스는 데이터베이스 테이블에서 데이터 검색 작업의 속도를 향상시키는 데이터 구조이다. 인덱스는 해당 테이블에 접근할 때마다 데이터베이스 테이블의 모든 행을 검색하지 않고도 데이터를 빠르게 찾는 데 사용된다. 인덱스는 효율적인 검색이 가능하도록 설계된 테이블에서 선택한 데이터 열의 복사본이다. 인덱스에는 일반적으로 전체 행을 효율적으로 검색할 수 있도록 복사된 원래 데이터 행에 대한 "키" 또는 직접 링크가 포함된다. first_name 에 index가 걸려있지..
-
조인(JOIN) 과 서브쿼리(Subquery) 차이는 무엇일까MySQL 2023. 6. 4. 00:53
들어가기 전에 MySQL 에서 데이터를 가져올 때 주로 JOIN 을 사용하지만 서브쿼리가 좋을 때도 있지 않을까라는 생각으로 차이점을 알아 보려한다. 조인(JOIN) vs 서브쿼리(Subquery) 조인과 서브쿼리는 때로 동일한 결과를 얻을 수 있다. 상황에 따라 조인을 사용하는 것이 훨씬 좋을 때도 있고, 반면에 서브쿼리를 사용하는 것이 좋을 때도 있다. 서브쿼리는 복잡한 SQL 쿼리문에 많이 사용된다. 보통은 메인쿼리라고 부르는 외부쿼리가 있고, 외부쿼리 내에 다른 쿼리문, 즉 내부쿼리가 있는 구조다. 반면에, 조인은 여러 개의 쿼리를 필요로 하지 않는다. 조인의 역할은 2개 혹은 그 이상의 테이블을 연결하고, 연결한 테이블로부터 필요한 열을 조회할 수 있도록 한다. 서브 쿼리와 조인 모두 여러 개의..
-
서브쿼리(Subquery)를 알아보자MySQL 2023. 6. 3. 03:26
들어가기 전에 데이터베이스에 저장된 데이터를 가져올 때 조인(JOIN) 을 자주 사용하는데 서브쿼리와의 차이가 무엇인지 궁금해 알아보려고한다. 서브쿼리 서브쿼리(subquery)란 다른 쿼리 내부에 포함되어 있는 SELECT 문을 의미한다. 서브쿼리를 포함하고 있는 쿼리를 외부쿼리(outer query)라고 부르며, 서브쿼리는 내부쿼리(inner query)라고 부른다. 서브쿼리는 괄호() 로 감싸져서 표현된다. 서브쿼리 실행 → 메인(부모) 쿼리 실행 select * from main_table # 메인쿼리 where target_id in ( # 서브쿼리 select id from sub_table where id < 500 ); 서브쿼리는 하나의 SQL 문 안에 포함되어 있는 또 다른 SQL 문을 ..