본문 바로가기

MySQL

MySQL에 대해서 알아보자 MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 데이터를 효율적으로 저장, 관리, 검색할 수 있는 소프트웨어입니다. 데이터베이스 시스템은 정보를 구조적으로 조직하여 사용자가 필요한 데이터를 쉽게 접근하고 조작할 수 있도록 합니다. MySQL은 다양한 응용 프로그램과 웹 사이트에서 많이 사용되며, 많은 개발자와 기업들이 이를 선택하는 이유는 여러 가지가 있습니다. 첫째로, MySQL은 사용이 간편하고 배우기 쉬운 SQL(Structured Query Language)을 통해 데이터를 다룰 수 있습니다. 둘째로, MySQL은 빠르고 안정적인 성능을 제공하여 대규모 데이터베이스에도 적합합니다. 또한, 오픈 소스로 개발되어 무료로 이용할 수 있으며, 개발자들과 커뮤니티의 지속적인 지원과.. 더보기
mysql에서 profile을 이용한 query 성능 분석을 해보자 SHOW PROFILES; MySQL에서 `SHOW PROFILE`과 `SET PROFILING`을 사용하여 성능 분석을 수행할 수 있습니다. `SHOW PROFILE`은 진단 정보를 보고하고 `SET PROFILING`은 성능 프로파일링을 시작하는 데 사용됩니다. 아래는 MySQL에서 `PROFILE`을 이용한 성능 분석의 예시입니다: 1. `SET PROFILING` 활성화: 먼저, `SET PROFILING`을 사용하여 성능 프로파일링을 활성화해야 합니다. 다음 쿼리를 실행하면 성능 프로파일링이 시작됩니다. SET PROFILING = 1; 2. 프로파일링이 필요한 쿼리 실행: 성능을 분석하고자 하는 쿼리를 실행합니다. 예를 들어, 다음과 같이 샘플 쿼리를 실행합니다. SELECT * FROM yo.. 더보기
mysql explain을 이용한 실행계획을 확인하자 MySQL의 `EXPLAIN`은 SQL 쿼리의 실행 계획을 확인하는데 사용되는 명령어입니다. `EXPLAIN`을 사용하면 MySQL 옵티마이저가 쿼리를 어떻게 처리하는지, 쿼리의 테이블 접근 방법, 조인 순서, 사용하는 인덱스 등에 대한 정보를 제공합니다. 이를 통해 쿼리의 성능을 최적화하고 느린 쿼리를 발견하는데 도움을 줍니다. `EXPLAIN`을 사용하는 방법은 간단합니다. 다음과 같이 `EXPLAIN` 키워드 다음에 실행하려는 쿼리를 작성하여 실행합니다: EXPLAIN SELECT column1, column2 FROM table_name WHERE condition; `EXPLAIN`은 쿼리 실행 계획에 대한 정보를 표 형식으로 반환합니다. 반환되는 컬럼들의 의미는 다음과 같습니다: 1. `id`.. 더보기
mysql processlist에 대해서 알아보자 MySQL의 `SHOW PROCESSLIST`는 MySQL 서버에서 현재 실행 중인 모든 쿼리와 해당 쿼리를 실행하는 클라이언트에 대한 정보를 보여주는 명령어입니다. 이를 통해 MySQL 데이터베이스 서버의 상태를 실시간으로 모니터링하고, 실행 중인 쿼리가 어떤 것인지, 얼마나 많은 클라이언트가 접속 중인지 등을 파악할 수 있습니다. `SHOW PROCESSLIST`를 실행하면 다음과 같은 정보를 얻을 수 있습니다: 1. `Id`: 각 클라이언트 세션에 할당된 고유한 식별자입니다. 2. `User`: 쿼리를 실행하는 MySQL 사용자의 이름입니다. 3. `Host`: 쿼리를 실행하는 클라이언트의 호스트 이름 또는 IP 주소입니다. 4. `db`: 쿼리가 실행되고 있는 데이터베이스 이름입니다. 5. `Co.. 더보기
[docker] docker 설치 (install) 안녕하세요 마푸입니다. 오늘은 도커의 설치에 대해서 알아보려합니다. 포스트 내용은 길지만 사실 엄청 짧은 내용입니다. (설치과정을 모두 올려드려서 그렇습니다. ^^) 사실 왠지 한줄로 끝내면 너무 성의 없어 보일까봐 그랫어요 ㅎㅎ;; 참고로 전 Ceontos에서 설치를 진행하여서 yum이라는 유틸리티로 설치 했습니다. 1. docker 내려받아 설치하기 앞서 말씀디린것처럼 centos에서는 yum이라는 유틸리티를 이용해서 프로그램을 설치 할 수 있습니다. 네 매우 쉽습니다. 슥~ 검색해서 install만 붙여주면 된깐요 ^^자세한 명령어는 아래와 같습니다 123456789101112131415161718192021222324252627282930313233343536373839404142434445464.. 더보기
[docker] 도커에 대해서 알아보자 안녕하세요 마푸입니다. 요즘 나른해지는 봄날이라 또 공부는 안하고 탱자탱자 놀다가 머할까를 반복적으로 되내이던 중 예전에 진행했던 프로젝트 중 "Django"에서 웹 호스팅하던게 생각이 났습니다. 이곳 블로그도 있지만 여기는 "공부" + "게임"이라는 상극의 컨텐츠를 올리고있지만, 새롭게 선보일 프로젝트는 "SNS"와 연계해서 개인의 다이어트 기록을 저장하고 이를 그래프해서 보여주는 웹서비스입니다. 물런 시중엔 비슷한 프로그램은 많지만 맘에 드는게 없어서 만들어보려합니다. 서두에서도 말씀드렸지만 기존에 Linux위에 Django와 Nginx를 이용한 구현은 이미 해봤기 때문에 요즘 핫한 docker를 이용한 배포 및 백업, 자가증식(?)이 유용한 서비스로 구축해볼까합니다. 아직 익숙치 않아 가능할지는 모.. 더보기
[MySQL] warning (경고) 메시지를 출력하자 안녕하세요 마푸입니다. MySQL을 관리하다보면 가끔씩 경고 메시지를 출력하는 경우를 볼 수 있습니다. MSSQL은 경고 메시지를 출력해도 무슨 이유때문에 경고를 뱉는지 알려주는데...My는 무슨 이유인지 꽁꽁 숨겨놓습니다. 사실 이러한 경우는 보통 터미널이나 Putty와 같은 콘솔 연결에서는 모두 출력이 되지만 SQL Browser로 연결해서 쿼리를 실행할 경우 이러한 문제에 당면(?) 할 수 있습니다. 결론부터 말씀드리면 "연결 설정 때문"인데요 연결 설정을 수정하면 되겠지만 미리 설정하지 않은 상황이라해도 볼 수 있는 명령어는 얼마든지 있습니다. 아래는 예전에 정리한 내용을 옮겨 적습니다. 제목 : 경고 메시지 출력 Mysql에서는 경고를 숫자로 카운트하고 보여주지 않습니다. 하지만 아래의 명령어로.. 더보기
[MySQL] show processlist 모니터링 하기 안녕하세요 마푸입니다. Mysql을 쓰다보면 점검을 시작하고나서 얼마 지나지 않았을때라던지 문득 트래픽이 올라가는데 지금 수행되는 쿼리가 궁금하게 되면 가장 먼저 실행하는 명령어가 아마도 show processlist 라고 생각합니다. 해당 명령어를 수행하면 아래와 같이 1회 출력하게 됩니다. (* 잠깐.. 여기서 에이 머야 모니터링이 안되네 라고 하시는분.. 끝까지 읽어보세요 ㅋ; 아래는 G 옵션을 줘서 row를 이쁘게 찍은 상태입니다. G 옵션이 없다면 우리가 흔히 볼 수 있는 테이블 형태로 출력합니다. 1234567891011121314151617181920mysql> SHOW FULL PROCESSLIST\G*************************** 1. row ***************.. 더보기

반응형