반응형 mysql4 [MySQL] 대량 데이터 INSERT 시 속도 개선 방법 1. LOAD DATA - Bulk Insert방법중 최대 속도인 처리방법 - 데이터를 파일로 로드해서 insert 하는 방법 - my.cnf에서 local-infile=1 설정이 되어 있어야 사용가능 - 단 데이터 내용안에 특수문자가 누락되는 경우가 많아서 특문을 별도 처리해야 함 LOAD DATA LOCAL INFILE '/work/data.txt' INTO TABLE TEST (c1,c2,c3,c4); 2. MULTI-VALUE INSERTS - 쿼리문 하나에 n개의 데이터를 입력해야함 - 단 데이터 갯수가 너무 많아져서 쿼리길이기 길어지는 경우를 대비하여 max-allowed-packet 길이를 조절해야 함. INSERT INTO [Table Name] VALUES (1,...), (2,...),.. IT와/Database 2022. 10. 8. [MySQL] 인덱스 #3 - INDEX의 종류 MySQL이 지원하는 index MySQL에서 지원하는 인덱스는 B+Tree와 Hash가 있습니다. B+tree MySQL에서 사용하는 B+tree에 대해서 이해하려면, 먼저 B-tree에 대해서 알아야 합니다. 왜냐하면 B+tree는 B-tree에서 한 단계 발전한 버전이기 때문입니다. B-tree는 이름에서도 알 수 있듯이 자료구조 중 tree구조로 이루어져 있습니다. Binary search를 떠올려보면 검색 속도가 O(logN)으로 매우 빨랐던 것을 떠올릴 수 있습니다. 어떻게 이게 가능한가? 하면 ‘이미 데이터가 정렬되었기 때문’입니다 아래 그림을 보겠습니다. 위 그림이 B-Tree의 구조입니다. 기존의 BST와 연관하여 생각하면 구조를 빠르게 파악할 수 있습니다. 여기서 핵심은 트리 구조로 이.. IT와/Database 2022. 10. 7. [MySQL] 인덱스 #2 - 인덱스(INDEX) 정리 및 설계 1. 개요 MySQL 스키마 설계는 자주 해보았지만 효율적인 데이터타입, 인덱스 설계에 대한 부분은 이해도가 낮은 것 같아 조사 후 남기는 포스팅이다. 2. 인덱스의 개념 인덱스는 테이블의 동작속도(조회)를 높여주는 자료구조이다. 인덱스로 데이터의 위치를 빠르게 찾아주는 역할이고 쉽게 예를 들어보면 책 뒷편에 '색인'이 인덱스의 역할과 동일하다고 볼 수 있다. (예를들어 '홍길동'이라는 단어를 찾고싶으면 색인페이지에서 '홍'으로 시작하거나 'ㅎ'으로 시작하는 색인을 찾아보면 빠르게 찾을 수 있다.) 인덱스는 MYI(MySQL Index)파일에 저장되며, 인덱스가 설정되지 않았다면 Table Full Scan이 일어나 성능이 저하되거나 치명적인 장애가 발생한다. 조회속도는 빨라지지만 UPDATE, INSE.. IT와/Database 2022. 10. 7. [MySQL] 락(Lock)의 종류 목차 락(Lock) 의 적용 요소에 따른 분류 락(Lock) 이 적용되는 상황에 따른 분류 MySQL InnoDB 락(Lock)의 종류 실제 Inno DB내부에서는 경우 여러 트랜잭션들이 경합하고 있는 상황에서 최대한의 성능을 위해서 여러 방식의 다양한 락(Lock)을 조합해서 사용하고 있다. 이 과정에서 각 트랜잭션이 획득한 락들은 해당 트랜잭션이 commit/rollback 되어 종료될 때까지 유효하기 때문에, 이러한 lock을 최소화 하면서도 동시성을 유지하기 위해 어떤 상황에 어떤 락들이 실제로 적용되는지를 좀더 자세히 살펴보도록 하자. 1. 락의 적용 요소에 따른 분류 Shared lock (S) Row-level lock SELECT 위한 read lock shared lock이 걸려있는 동안.. IT와/Database 2022. 10. 4. 이전 1 다음 💲 추천 글 반응형