MySQL

데이터베이스의 INSERT 쿼리는 애플리케이션 성능에 중요한 영향을 미친다. 단일 레코드 삽입은 간단해 보일 수 있지만, 대규모 데이터 삽입이나 빈번한 트랜잭션 환경에서는 최적화가 필요하다. INSERT 쿼리 성능에 영향을 미치는 요소1. 테이블의 인덱스인덱스는 데이터를 빠르게 조회하는 데 유용하지만, INSERT 시에는 추가적인 작업을 발생시킨다.데이터 삽입 시마다 인덱스도 함께 업데이트되어야 하기 때문이다. 2. 제약 조건 (Constraints)FOREIGN KEY, UNIQUE 같은 제약 조건은 데이터를 검증하는 데 추가적인 시간을 소모한다. 3. 트랜잭션 처리트랜잭션은 데이터 일관성을 보장하지만, 과도하게 사용되면 성능을 저하시킬 수 있다. 4. 대량 삽입 vs. 단일 삽입대량의 데이터를 삽입하..
데이터베이스에서 대규모 데이터를 다룰 때, 정렬 작업은 필수적이다. MySQL에서 정렬 작업을 수행하는 주요 메커니즘 중 하나가 바로 filesort이다. 이는 테이블 데이터를 정렬해야 하지만, 해당 작업을 인덱스를 통해 처리하지 못할 경우 사용된다. 이름은 filesort이지만, 정렬이 반드시 디스크에서 수행되는 것은 아니며, 정렬 작업은 메모리에서 시작하고 필요한 경우 디스크로 이동된다. filesort의 동작 원리MySQL이 정렬 작업을 처리할 때, 다음 두 가지 방식 중 하나를 선택한다. 1. 인덱스 기반 정렬ORDER BY나 GROUP BY 절에서 사용된 컬럼이 인덱스에 포함된 경우, 정렬 작업은 인덱스를 활용해 효율적으로 처리된다.filesort가 사용되지 않는다. 2. filesort 기반 ..
Multi Column Index란?데이터베이스에서 성능 최적화는 매우 중요한 요소이다. 특히 대량의 데이터가 저장된 테이블에서 빠르게 데이터를 조회하려면 인덱스(Index)를 활용해야 한다. 그중에서도 Multi-Column Index(다중 열 인덱스)는 데이터베이스에서 두 개 이상의 열(column)을 결합하여 효율적으로 데이터를 검색할 수 있게 해주는 인덱스이며, 이를 통해 복합적인 조건의 검색 속도를 향상시킬 수 있다.  Multi Column Index의 특징Multi Column Index는 두 개 이상의 컬럼을 결합하여 하나의 인덱스를 생성하는 방식이다. 단일 컬럼 인덱스와 달리, 특정 컬럼의 조합으로 이루어진 검색 조건에 대해 최적화된 성능을 제공한다. 1. 왼쪽 선행 열 원칙(Leftmo..
WebSocket, Stomp, Kafka, MongoDB, MySQL, Redis를 사용하여 채팅 기능을 구현하였다.이번에는 시간 타입 변경(String -> LocalDateTime)에 의한 성능 개선 경험 그리고 Kafka를 사용한 성능 개선 경험에 대해 작성해보려 한다. 성능 테스트 구성테스트에 앞서 WebSocket 테스트를 위해서는, JMeter에 WebSocket 플러그인을 설치해야 한다. Thread Group 구성웹소켓 연결 시작(WebSocket Open Connection)웹소켓 연결 요청(SEND CONNECT)채팅방 구독 요청(SEND SUBSCRIBE)메시지 전송(SEND CHAT)응답 대기(READ CHAT)웹소켓 연결 해제(DISCONNECT)※ 이때, 채팅방 구독 해제와 웹..
개발자가 될 사람
'MySQL' 태그의 글 목록