Data Base에서의 인덱스 사용

0

TIL

목록 보기
86/126

DB에 인덱스를 사용하면 인덱스에 의해 데이터들이 정렬된 행태를 갖추어 특정 컬럼에 대한 검색 속도를 향상시켜주는 자료구조이기 때문에, 시스템 전반적인 부하를 줄일 수 있다.

그러나 인덱스를 너무 많이 만들거나 인덱싱에 잘못된 열을 사용하는 등 인덱스를 잘못 사용하면 실제로 데이터베이스 성능에 부정적인 영향을 미칠 수 있다는 점에 유의해야 한다.
동시성 문제는 여러 개의 스레드 또는 프로세스가 동시에 같은 자원에 접근하여 발생할 수 있는 문제이다. 이를 해결하기 위한 방법들에는 다음과 같다.

  1. 상호배제 (Mutual Exclusion) : 공유 자원에 대한 접근을 한 번에 하나의 스레드 또는 프로세스만 가능하도록 제한하는 방법.
  2. 동기화 (Synchronization) : 스레드 또는 프로세스 간의 작업 순서를 조정하는 방법. 대표적인 예로 락(Lock)과 컨디션 변수(Condition Variable)가 있다.
  3. 교착 상태 (Deadlock) 방지 : 교착 상태를 방지하기 위해 상호배제와 동기화를 적절히 조합하여 사용. 교착 상태는 다른 스레드 또는 프로세스가 필요로 하는 자원을 점유한 채로 무한정 대기하는 상황을 말한다.
  4. 비동기 프로그래밍 : 비동기 프로그래밍은 작업을 수행하는 동안 다른 작업을 수행할 수 있도록 하는 방법. 이를 위해 콜백(Callback)이나 프로미스(Promise)와 같은 개념을 사용한다.
  5. 원자성 (Atomicity) : 하나의 명령어가 원자적으로 수행되어야 한다는 원칙을 따르는 방법. 원자성을 보장하는 연산은 동시성 이슈를 방지할 수 있다.

0개의 댓글