전체 글141 [개인프로젝트] ElasitcSearch 에 대해 좀 더 공부해보자 (2) 저번 블로그에서는 ElasticSearch 개념에 대해 알아보았고 이번에는 과정에 대해 알아볼 예정이다 색인과정 색인이란 문서를 분석하고 저장하는 과정이다. 색인과정을 간단하게 설명하자면 인덱스의 존재 유무 파악 -> 있다면 매핑정보 있는가(없다면 동적매핑) -> 매핑정보 올바른지 확인(안올바르면 에러) -> inverted index 생성 -> 프라미머리 샤드에 저장 -> 레프리카 샤드에 복사 1. 색인 과정 어떤 노드에 요청을 해도 동일한 응답을 보장하지만 여기서는 레플리카가 존재하는 노드에 요청했다고 가정하면 첫번째 노드(데이터노드)로 전달하여 프리미어 샤드에 저장되고 레플리카 노드로 다시 들어온다. 저 이미지 상황에는 문제가 있다. 1. 하나의 노드가 놀고 있다 2. 프라이머리 샤드가 노드하나에만.. 2024. 3. 11. [개인프로젝트] ElasitcSearch 에 대해 좀 더 공부해보자 (1) 개인프로젝트에서 ElasitcSearch를 사용했다. 생각해보면 개념을 정확하게 인지하지 않은채 적용한 거같아서 좀더 공부해보았다. ElasticSearch 루씬 기반의 오픈소스 검색엔진이라고 한다. ElasticSearch의 특징은 1. 준실시간 검색 시스템 : 실시간이라 생각될 만큼 색인된 데이터가 빠르게 검색된다. 2. 고가용성을 위한 클러스터 구성 : 한대 이상의 노드로 클러스터를 구성하여 높은 수준의 안정성 달성 및 부하 분산 가능 3. 동적 스키마 생성 : 입력될 데이터들에 대해 미리 스키마를 생성하지 않아도 동적으로 생성가능 4. Rest API 기반의 인터페이스 : Rest API 기반의 인터페이스를 제공하여 비교적 사용을 위한 진입 장벽이 낮다 클러스터와 노드 컴퓨터에서의 클러스터란 여러.. 2024. 3. 11. [mySQL] OrderBy 인덱스 (3) 지난 블로그에서 인덱스 종류와 커버링 인덱스에 대해서 알아보았다. 오늘은 OrderBy 인덱스에 관해서 이야기해볼예정이다. Order BY 인덱스 Order By절에 명시된 칼럼에 인덱스가 있다면 MySQL은 이미 정렬된 데이터를 사용하기 때문에 추가적인 정렬작업이 필요없다. 그러나 만약 없다면 filesort방식으로 임시 테이블을 사용해 정렬 작업을 수행한다. filesort 이용하고 있는지 여부는 EXPLAIN 명령어를 통해 Extra칼럼에 Using filesort가 있다면 filesort를 사용하고 있다는 것이다. 왜 Order By절에 명시된 칼럼에 인덱스를 사용하는 것이 좋을까? -> Limit절과 사용하게 된다면 인덱스가 있을때 MySQL은 필요한 만큼만 데이터를 읽고나서 처리를 중단한다. .. 2024. 3. 10. 2024-03-10 일주일 회고록 아무 생각이 없는 요즘 최근 취업안되는 것도 맞고 서류합격도 안되고 있는데 정말 생각이 없다. 뭐랄까 이제 해탈한 기분이랄까... 멘토링도 3,4번 받아보고 고쳐봐도 결과보면 그냥 벽보고 서있는 느낌이랄까..?? 그래서 사실 그냥 백수로 살고 싶다는 생각이...ㅎㅎㅎㅎ 그냥 알바나 하면서 인생을 살아야하나...ㅋㅋㅋㅋ 공채시즌 공채시즌이다.. 그래서 자소서 쓰고 있긴한데..이게 맞나;; 싶기도 하고,,, 사실 뭔가 나는 대기업보다는 스타트업 가서 밑바닥부터 해보고 싶은데... 그게 맘대로 되지않는다.. 스타트업도 채용이 잘 되지않는 시즌이니... 요즘그래서 뭐하냐고? 그냥 공부해 이전에 적용했던 기술들 공부하고, 면접질문도 짜보고, cs관련 질문도 한번씩 읽어보고,,, 싫어하는 코테도 3문제이상씩 풀려고.. 2024. 3. 10. [mySQL] 인덱스 종류와 커버링 인덱스 (2) 지난 블로그에 인덱스와 복합인덱스에 대해서 기록해보았다. 오늘은 인덱스 종류와 커버링 인덱스에 관해서 이야기해볼예정이다. Explain type, extra 설명 앞선 내용을 설명하기 전에 인덱스를 확인할때바다 type과 extra를 봤다. 이에 관해서 조금 이야기를 나눠보자. 이에 대해서 간단하게 정리해둔 블로그가 있다. 여기서는 주요키워드만 볼 것이다. 1. type all을 빼고는 인덱스를 탄다는 것알 알면된다. index -> index full scan : 수직적 탐색 없이 인덱스 리프 블록 처음부터 끝까지 수평적으로 탐색한다 데이터 검색을 위한 최적의 인덱스가 없을때 차선으로 선택됨 예를 들어 인덱스 선두 칼럼이 조건절에 없으면 옵티마이저는 먼저 Table full scan을 하고자하지만 대용.. 2024. 3. 7. [mySQL] 인덱스 개념과 복합 인덱스 (1) 인덱스란 지정한 컬럼들을 기준으로 메모리 영역에 일종의 목차를 생성하는 것이다. insert, update, delete의 성능이 좀 느려질 수 있지만 select 성능을 향상 시킬 수있다. 인덱스는 B-tree라는 구조를 사용하는데 이와 관련해서는 이 블로그를 참고 바란다.!(그림으로 잘 설명되어있음) 인덱스는 한마디로 쿼리 결과값을 빠르게 하고 싶어서 생성한 것이다. 그럼 인덱스는 어떤 칼럼으로 생성해야하는데?? 인덱스 칼럼 생성 일반적으로는 카디널리티가 높은 것을 잡아야한다고 한다. 카디널리티란 해당 컬럼 데이터의 중복된 수치를 말하는데 예를 들어 학번 과 성별의 카디널리티를 비교하면 학번이 당연히 높다. 카디널리티 높은 것로 잡는 이유는 필터링이다. 최대한 많은 부분을 걸러내기 위해서이다. 그럼 .. 2024. 3. 7. 이전 1 2 3 4 5 6 7 8 ··· 24 다음 728x90