기술면접32 [기술면접] DB 문답 | index 상세 💡 index를 어느 column에 사용하는 것이 좋을까요? INDEX는 어떤 컬럼에 설정해야할까? 인덱스는 where 절에서 자주 조회하고 수정 빈도가 낮으며 데이터 중복이 적은 컬럼을 선택하는 것이 좋다. join 조건으로 자주 사용되는 컬럼도 인덱스로 사용하면 좋다. index는 데이터의 양이 많을수록 성능이 향상된다. 단, 한 테이블에 인덱스가 너무 많으면 데이터 수정 시 소요시간이 커지므로 주의. 또한 성별처럼 데이터 중복이 높은 값은 인덱스를 생성하는 것이 크게 의미가 없다. 왜냐하면 인덱스의 이점보다 추가 저장공간이나 데이터 수정에 대한 성능 저하가 더 크기 때문이다. '클러스터형 인덱스'와 '보조 인덱스' Clustering index : 특정 컬럼을 기본키로 지정하면 자동으로 인덱스가 생.. 2023. 9. 5. [기술면접] DB 문답 | Transaction의 Lock, Index 💡 Transaction과 비관적 락, 낙관적 락 DB를 조작하며 동시에 같은 데이터 row에 접근할 때, 서로 충돌하여 데이터의 무결성을 해치는 상황이 발생할 수 있다. 이를 방지하는 것이 transaction이고, transaction은 해당 데이터에 lock을 거는 방식으로 동작한다. lock에는 두가지 방법이 있는데, 말그대로 자원 경쟁을 비관적으로 보는 것이 비관적 락. 낙관적으로 보는 것이 낙관적 락이다. 비관적 락(pessimistic lock) 문제가 발생할 것이라고 미리 생각하고 트랜잭션이 시작될 때 예방책의 Lock을 걸어주는 방식 비관적락 에는 Shared Lock, Exclusive Lock이 있다 Shared Lock 공유락 : = Read Lock 트랜잭션이 읽기를 할때 사용하는.. 2023. 9. 4. [기술면접] DB 문답 | Transaction + SQL언어 💡 Transaction을 간단히 설명해 주세요 트랜잭션이란 데이터베이스의 상태를 변환시키는 기능을 수행하기 위한 하나 이상의 쿼리를 모아 놓은 하나의 작업 단위를 말한다. 각 트랜잭션은 하나의 특정 작업으로 시작을 해서 묶여 있는 모든 작업들을 다 완료해야 정상적으로 종료된다. 만약 하나의 트랜잭션에 속해있는 여러 작업 중에서 단 하나의 작업이라도 실패하면, 이 트랜잭션에 속한 모든 작업을 실패한 것으로 판단한다. = 작업이 하나라도 실패를 하게 되면 트랜잭션도 실패이고, 모든 작업이 성공적이면 트랜잭션 또한 성공이다. 데이터베이스 트랜잭션은 ACID라는 특성을 가지고 있다. Atomicity(원자성), Consistency(일관성), Isolation(격리성, 고립성), Durability(지속성) .. 2023. 9. 1. [기술면접] DB | 모델링 N:M관계 💡 데이터 모델링의 이해 DB 모델링 데이터 관점의 업무 분석 기법 우리가 살고있는 세상을 데이터 베이스에 넣기 위해 테이블들을 결정하는 과정 현실 혹은 추상적 데이터에 대한 분석, 설계로 데이터간의 관계를 정의하는 과정 *주의* 데이터 모델링 시에는 중복이나 비일관성, 비유연성을 주의해야한다 데이터 모델링의 특징 추상화 단순화 명확화(정확화) DB의 구조 DB : 데이터를 저장하는 저장소 DBMS : db를 관리하고 운영하는 소프트웨어 테이블 : 행과 열로 되어있는 DB안에 들어있는 정보 행 row : 실질적인 데이터. 행 데이터 (=데이터의 개수) 열 column : 열(세로. 정보 상세) pk : primary key -> 어떤 열을 기본키로 정할지는 개발자가 정함 전제조건: 1 중복이 없어야하며,.. 2023. 8. 28. 이전 1 2 3 4 5 ··· 8 다음