개발자와 DBA를 위한 Real MySQL 책을 보고 정리한 내용이다. 트랜잭션 하나의 논리적인 작업 셋에 하나의 쿼리가 있든 두 개 이상의 쿼리가 있든 관계없이 논리적인 작업 셋 자체가 100% 적용되거나 또는 아무것도 적용되지 않아야 함을 보장해주는 것 트랜잭션 관점에서 InnoDB/MyISAM 스토리지 엔진 차이 mysql> CREATE TABLE tab_myisam(fdpk INT NOT NULL, PRIMARY KEY (fdpk)) ENGINE=MyISAM; mysql> INSERT INTO tab_myisam(fdpk) VALUES (3); mysql> CREATE TABLE tab_innodb(fdpk INT NOT NULL, PRIMARY KEY (fdpk)) ENGINE=INNODB; m..
개발자와 DBA를 위한 Real MySQL 책을 보고 정리한 내용이다. MySQL 전체 아키텍처 MySQL 서버는 MySQL 엔진, 스토리지 엔진으로 구분된다. MySQL 엔진 클라이언트로부터 접속 및 쿼리 요청을 처리하는 커넥션 핸들러와 SQL 파서 및 전처리기, 그리고 쿼리의 최적화된 실행을 위한 옵티마이저가 중심을 이룬다. 성능 향상을 위해 MyISAM의 키 캐시나 InnoDB의 버퍼 풀과 같은 보조 저장소 기능이 포함돼 있다. 표준 SQL(ANSI SQL-92) 문법을 지원하므로 표준 문법에 따른 다른 DBMS와 호환되어 실행될 수 있다. 스토리지 엔진 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당하는 처리를 수행 실제 데이터를 디스크 스토리지에 저장하거나 디스크 스토리지로..
개발자와 DBA를 위한 Real MySQL 책을 보고 정리한 내용이다. MySQL 설정 파일 MySQL 서버는 단 하나의 설정 파일(my.cnf)만 사용한다. 설정 파일의 경로가 하나로 고정돼어 있지않고 MySQL 서버에 지정된 여러 개의 디렉토리를 순차적으로 탐색하면서 처음 발견된 my.cnf 파일을 시작될 때만 참조해 사용하게 된다. 순서는 다음과 같다. 1. /etc/my.cnf 2. /etc/mysql/my.cnf 3. /usr/local/mysql/etc/my.cnf 4. ~/.my.cnf 1, 2, 4 번 파일 경로는 어느 MySQL에서나 동일하게 검색하는 경로이며, 3 번 파일은 컴파일될 때 MySQL 프로그램에 내장된 경로이다. MySQL 서버용 설정 파일 1, 3 하나의 장비( 서버 머신..
본 문서는 공식 홈페이지 Elasticsearch 시작하기 를 보며 정리한 문서이다. 설치는 이전 글을 참고한다. ELK Stack을 실행 후 키바나의 dev_tools 로 접속해 이곳에서 테스트를 진행한다. 문서 색인 우선 customer라는 인덱스에 식별자 "1", 이름이 "John Doe" 인 데이터를 삽입하고 조회한다. PUT /customer/_doc/1 { "name": "John Doe" }삽입한 결과는 다음과 같다. { "_index" : "customer", // index 정보 "_type" : "_doc", // 문서의 타입 "_id" : "1", // id = 1 "_version" : 4, // version 정보 "result" : "updated", // 결과 "_shards"..
본 문서는 공식 홈페이지 를 보며 정리한 문서이다. Elasticsearch는 Elastic Stack의 중심에서 분산 검색 및 분석을 담당하는 엔진이다. Logstash와 Beats는 데이터를 수집, 집계하고 Elastcsearch에 저장하는 것을 용이하게 한다. Kibana를 사용하면 데이터를 탐색, 시각화 및 공유하고 스택을 관리 및 모니터링 가능하다. Elastcsearch는 모든 유형의 데이터에 대해 거의 실시간 검색 및 분석을 제공한다. 구조화되었거나 구조화되지 않은 텍스트, 숫자 데이터 또는 지리 공간 데이터가 있든 관계없이 빠른 검색을 지원하는 방식으로 효율적으로 저장하고 색인을 생성할 수 있다. 단순한 데이터 검색 및 집계 정보를 뛰어 넘어 데이터의 추세와 패턴을 찾아낼 수도 있으며, 데..
간단히 사용하기 위해 docker를 사용하여 ELK를 설치하고자 한다. docker는 무상태성을 가지므로 데이터 바인딩 작업을 따로 해줘야 데이터가 저장된다. 이번장에서는 데이터 바인딩을 따로 진행하지 않을 예정이며 추후 기회가 된다면 데이터 바인딩 작업을 진행하도록 한다. docker는 이미 설치되어 있다는 가정하에 설치를 진행한다. 설치환경은 다음과 같다. OS : macOS Big Sur (버전 : 11.2) docker-version : Docker version 20.10.0 Docker-compose version : docker-compose version 1.27.4 설치를 원하는 서버에서 git clone을 진행한다. 해당 프로젝트에는 ELK Stack(Elasticsearch, Kiba..
지금까지 RDBMS(MySQL, MariaDB, PostgreSQL), NoSQL(MongoDB, Redis)를 주로 사용한 입장에서 Elasticsearch를 처음 사용하다 보니 용어가 헷갈려 RDBMS, NoSQL를 비교하여 용어에 좀 더 친숙해 지기 위해 정리한다. Elasticsearch, RDBMS 비교 ElasticsearchRDBMSMongoDB(NoSQL) Mapping Schema Collection Index Database Database Type Table Collection Document Row Document Field Column Column REST API의 CRUD와 Elasticsearch, RDBMS 비교 CRUDElasticsearchRDBMS CREATE POST ..
본 문서는 공식 홈페이지를 보며 정리한 문서이다. ELK Stack ELK는 오픈 소스 프로젝트 Elasticsearch, Logstach, Kibana 의 앞 글자를 딴 약자이다. Logstash는 데이터를 수집하여 Elasticsearch로 전달하는 서버 사이드 데이터 처리 파이프라인이며, Elasticsearch는 저장, 검색 및 분석 엔진, Kibana는 Elasticsearch에 수집되어 있는 데이터를 차트나 그래프를 이용해 데이터를 시각화 시켜주는 도구이다. 이 3가지의 오픈 소스들이 합쳐져 ELK Stack이라고 불리우고 있으며 Elastic Stack은 ELK Stack에서 다음 단계(기능 및 오픈소스 프로젝트 추가)로 발전한 것이다. Elastic Stack Elasticsearch는 J..
Tistory Google Analytics 연동 구글 애널리틱스 (Google Analytics, GA) 구글 애널리틱스는 구글에서 무료로 제공하고 있는 웹분석 서비스이다. 웹 분석은 웹사이트 이용 현황을 이해하고 사용자 경험을 최적화하기 위해 웹 데이터를 측정, 수집, 분석 및 보고 하는 것을 말하며 여러 이벤트, 스크롤수, 해당 페이지에 얼마나 머물렀는지 등의 다양한 분석을 제공한다. Google이 Urchin이라는 웹 분석 회사를 인수 한 후 2005 년 11 월에 서비스를 시작했으며 iOS, Andoird 모바일 앱에서도 데이터를 수집할 수 있는 SDK를 제공하고 있다. 제공하는 기능으로는 다음과 같다. 보고 데이터 분석 및 시각화 데이터 수집 및 관리 데이터 활성화 통합 연동 먼저 Tistor..
ElephantSQL 소개할 ElephantSQL은 여러 관계형 데이터베이스 중 PostgreSQL 데이터베이스의 호스팅 서비스이다. 데이터베이스 호스팅 서비스는 웹서버와 데이터베이스 서버가 같은 물리적 장치에 있는 것이 아닌 웹서버와 데이터베이스 서버를 분리하여 효율적으로 데이터베이스를 활용할 수 있도록 도와주는 서비스이다. 좀 더 간략히 말하면 데이터베이스만을 사용하는 서버를 구축한다는 것이다. 데이터베이스 호스팅을 사용하게 되면 여러 웹서버가 데이터베이스 호스팅에 연결되어 동작한다. 이러한 호스팅을 제공하는 많은 회사가 존재하며 그중 하나라고 생각하면 될듯하다. 이러한 데이터베이스 호스팅 회사들은 데이터베이스의 저장용량, 동시 허용 접속 수 등을 관리하며 사용자들에게 관리비를 받는다고 알고 있다. ..