BACKEND(114)
-
MySQL Ngram, 제대로 이해하기
MySQL의 fulltext 검색 알고리즘 중, ngram을 이해하고 사용할 줄 알게끔 습득하는 것이 해당 포스팅의 목표입니다. 👜 Ngram? 이전 포스팅에서 Full-Text 검색을 다루었는데요. 이번에는 단어을 파싱하여 검색하는 과정에서 필요한 parser 중 "ngram"에 대해 포스팅하고자 합니다. Ngram의 특징에는 아래 3가지가 있습니다. ✔️ Built-in ngram은 MySQL의 Built-in Parser로써, 다른 기본 제공 서버 플러그인과 마찬가지로 서버가 시작될 때 자동으로 로드됩니다. 즉, 따로 설치할 필요없이 사용할 수 있다는 큰 장점을 가집니다. ✔️ MySQL의 지원 또한 InnoDB 및 MyISAM 엔진을 지원하며, ngram은 중국어, 일본어, 한국어(CJK)를 지원..
2022.04.25 -
MySQL FullText Search, 제대로 이해하기
MySQL의 fulltext search 에 대한 이해와 MATCH AGAINST 사용법을 간단히 알아보는 것이 해당 포스팅의 목표입니다. 후속 포스팅으로 FULLTEXT 검색 파서 중 하나인 "ngram" 사용법에 대해 다룰 때 구문 사용법을 조금 더 자세히 알아볼 예정이며, 해당 포스팅에서는 FullText 기본적인 내용과 활용법에 대해 알아보고자 합니다. Full-Text Searches MySQL을 사용할 때, LIKE 연산을 통한 패턴 일치 검색을 사용하고는 합니다. LIKE 연산을 통해 검색을 하게 되면 인덱스를 통한 검색을 못할 때가 생기곤 하는데요. 이럴 때 고려해볼 수 있는 것이 바로 오늘 다룰 전문 검색, Full-Text 검색입니다. FullText 검색은 단어 또는 구문에 대한 검색..
2022.04.24 -
SQL Execution Plan, 제대로 이해하기
Execution Plan을 읽고 해석할 수 있는 것이 이 포스팅의 목표입니다. 본 포스팅은 사용된 코드나 데이터는 직접 테스트 한 내용으로, 만약 직접 테스트 해보고 싶다면 아래의 내용을 참고해주세요. Mysql Version: 8.0.26 Test DB: employees 테스트 DB는 해당 링크의 'Example Databases > employee data'에서 다운받으실 수 있습니다. 해당 테스트 DB는 아래와 같은 구조로 구성되어 있습니다. Execution Plan? 실행 계획이란, 말 그대로 SQL 문으로 요청한 데이터를 어떻게 불러올 것인지에 관한 계획, 즉 경로를 의미합니다. 지름길을 사용해 데이터를 빠르게 찾아낼 것인지, 지름길이 있어도 멀리 돌아가서 찾을 것인지 미리 확인할 수 있습..
2022.04.17 -
Bulk Insert, 성능 테스트
데이터베이스 쿼리의 성능을 높이는 방법으로 Bulk Insert를 사용하곤 하는데요. 오늘은 데이터베이스의 Bulk Insert의 성능을 비교해보고자 합니다. 직접 실행해본 쿼리를 통해 어느정도 성능이 좋아지는 지를 직접 확인해보기 위함입니다. + 스프링에서 사용하는 MyBatis에 대한 코드로의 테스트도 함께 진행합니다. 이어지는 포스팅 👉🏻 Spring, Bulk Insert 성능 측정 Bulk Insert Bulk는 무더기, 더 나눠지지 않는 대량의 짐 등으로 볼 수 있습니다. 데이터들이 무수히 많은 경우의 데이터 삽입 시에 이 Bulk Insert를 사용합니다. 따로 어려운 개념이 아니라, Insert 쿼리만을 조금 바꾸는 것인데요. 실제로 테스트 해보도록 합시다. 참고로, MySQL Workbe..
2022.03.05 -
Docker Network, 제대로 이해하기 (2)
📌 Docker SeriesDocker Engine, 제대로 이해하기 (1) - docker engine deep diveDocker Engine, 제대로 이해하기 (2) - namespace, cgroupDocker Network, 제대로 이해하기 (1) - libnetwork> Docker Network, 제대로 이해하기 (2) - bridge, host, none driversDocker, 제대로 사용하기 - Commands 안녕하세요.오늘은 Docker Network를 Deep Dive하고자 합니다.지난 Docker 시리즈로 Docker Engine에 대해 다루고 3부로 진행하려 했던 Network에 해당됩니다.내용도 많고 가벼운 주제가 아니라 시리즈를 따로 구성했습니다 〰️ 해당 포스팅..
2022.02.15 -
Docker Network, 제대로 이해하기 (1)
📌 Docker SeriesDocker Engine, 제대로 이해하기 (1) - docker engine deep diveDocker Engine, 제대로 이해하기 (2) - namespace, cgroup> Docker Network, 제대로 이해하기 (1) - libnetworkDocker Network, 제대로 이해하기 (2) - bridge, host, none driversDocker, 제대로 사용하기 - Commands 안녕하세요.오늘은 Docker Network를 Deep Dive하고자 합니다.지난 Docker 시리즈로 Docker Engine에 대해 다루고 3부로 진행하려 했던 Network에 해당됩니다.내용도 많고 가벼운 주제가 아니라 시리즈를 따로 구성했습니다 〰️ 해당 포스팅은..
2022.02.09