데이터아키텍처83 MySQL INTO OUTFILE 활용한 백업 방법 『 '데이널'의 컨텐츠에 포함된 정보는? 』 MySQL에서 데이터를 백업하려면 몇가지 방법이 있습니다. 그 중 하나가 INTO OUTFILE을 이용한 백업 방법입니다. 데이터베이스 백업이라고 하면 어렵게 들릴 수 있지만, 걱정하지 않아도 될 것이 sql만 실행하면 됩니다. MySQL INTO OUTFILE 이란?INTO OUTFILE은 MySQL에서 데이터를 파일로 내보내는 방법 중 하나입니다. 마치 여러분이 select문을 작성해서 그 내용을 바로 파일로 저장하는 방식입니다. 약간 오라클의 spool과 느낌이 비슷하죠? SELECT name, start_date INTO OUTFILE '/tmp/my_data.txt'FROM emp; 이 명령을 실행하면, emp 테이블의 원하는 컬럼의 데이터를 'm.. 2024. 10. 22. 데이터 이행 시간 단축, 단 6%가 시스템 전체를 좌우한다? 『 '데이널'의 컨텐츠에 포함된 정보는? 』 이행 테스트를 마치고 결과를 분석하면서 한 가지 놀라웠던 점이 있습니다. 몇 개의 테이블이 모든 시간을 잡아먹고 있었다는 사실이었죠. 이 글에서는 이행 시간 단축을 위한 확실히 써 먹을 수 있는 방법에 대해 이야기 해 보겠습니다. 파레토 법칙결론부터 말하면 이행 시간을 단축을 위해서는 주요 테이블의 공략해야 합니다. “소수의 원인이 대부분의 결과를 만든다"는 말, 한 번쯤 들어보셨죠? 바로 파레토 법칙, 혹은 80:20 법칙인데요. 이 법칙은 실생활에서도 자주 목격이 되는데요. 예를 들어, 부자 20%가 80%의 부를 소유하고 있는 현상 같은 것들이죠. 사실 그 현상에 의미가 있다기보다는 개선 방법이 더 중요합니다. 20%를 개선하면 80%의 효과를 낼 수 있.. 2024. 9. 30. 데이터베이스와 스키마, 똑같은 말이라고요? NO! 『 '데이널'의 컨텐츠에 포함된 정보는? 』 데이터베이스와 스키마는 다른건가요? 최근에 팀원에게 받은 질문입니다. "어 다르지~"라고 말해주니, 기다렸다는 듯이 반문 하더군요. 제가 MySQL에서 SHOW DATABASES;와 SHOW SCHEMAS;를 실행했는데요. 동일한 결과가 나오는데요. '어, 이걸 어디서부터 설명하지...' 속으로 생각했죠. 우선 용어 정리와 관계부터 차근차근 설명하기로 했습니다. 인스턴스 vs 데이터베이스 vs 스키마의 관계우선 인스턴스부터 알아야 합니다. database를 메모리에 로딩하여 실제로 동작하게 하는 프로세스를 인스턴스라고 하죠. 데이터베이스 파일을 읽고 쓰며, SQL 쿼리를 실행하고 결과를 반환하는 등의 작업을 수행합니다. 데이터베이스는 그 인스턴스 위에서 구동됩.. 2024. 9. 25. 데이터 이행 계획, 체크리스트 꼭 준비해야 하는 이유? 『 '데이널'의 컨텐츠에 포함된 정보는? 』 데이터 이행 계획은 빠짐없이 준비할수록 좋은데요. 만약 여러분이 이사를 간다고 생각하면 어떻게 할까요? 이삿짐과 이사에 대한 서류들이 문제없는지 Check List를 분명 만드실 겁니다. 바로 데이터베이스의 이사하는 과정이 데이터 이행입니다. 체크리스트 하나로 프로젝트를 구하다저는 한때 자체 개발 팀을 이끌었던 경험이 있습니다. 기존 일반 개발 환경에서 EKS(쿠버네티스)라는 새로운 환경으로 개발 소스부터 데이터까지 모두 옮겨야 하는 상황이었죠. 갑작스러운 환경 변화는 나와 팀원들 모두 혼란스러웠죠. 데이터 이행부터 개발 소스, CI/CD까지 신경 써야 할 일이 너무 많았습니다. 특히, 기술의 범위가 넓고 환경 변화가 커서 항상 뭔가 빠뜨리는 것 같았는데요. .. 2024. 9. 3. MySQL 내장 함수 99개 총정리 『 '데이널' 컨텐츠에 포함된 정보는? 』 MySQL에서 SQL을 만들다 보면, 간단한 작업부터 복잡한 계산까지 다양한 함수가 필요합니다. MySQL은 이러한 작업을 쉽게 처리할 수 있도록 여러 내장 함수를 지원하고 있습니다. 이글을 이용해 MySQL에서 사용되는 내장 함수들을 모두 정리해 보겠습니다. MySQL 함수는 문자열 함수, 수학 함수, 날짜와 시간 함수, 논리 함수, 그리고 집계 함수로 구분할 수 있습니다. 각 영역별로 사용되는 대부분의 함수를 정리했으니 참고하시기 바랍니다. 1. 문자열 함수문자열 함수는 텍스트를 처리할 때 주로 사용되는데요. 예를 들어, 이름이나 주소와 같은 데이터를 다룰 때 많이 사용됩니다.함수명설명예시결과CONCAT() 여러 문자열을 하나로 합침 CONCAT('Hel.. 2024. 8. 28. 오라클 vs MySQL ANSI Outer Join의 차이점 오라클 SQL의 OUTER JOIN과 MySQL의 OUTER 조인 구문이 다른데요. MySQL은 ANSI SQL을 사용하기 때문입니다. 결론부터 말하면 구문은 달라도 기본적으로 동일한 결과를 만들어 낼 수 있습니다. 하지만, 그 표현 방식에 있어서 차이가 있는데요. 잘 못 사용하면 전혀 다른 결과가 나오니 마지막까지 읽어봐 주세요. Oracle과 MySQL의 구문 차이1. 오라클 SQL오라클에서 OUTER JOIN을 사용하려면, ANSI 표준이 아닌 오라클 고유의 구문을 사용했습니다. 오라클에서는 (+) 기호를 사용하여 OUTER JOIN을 표현합니다. select *from usr a, usr_opt bwhere a.usr_id = b.usr_id(+);위 예제에서 b.usr_id(+)는 usr 테.. 2024. 8. 27. MySQL 권한 종류 및 부여, 확인, 취소 방법 MySQL의 권한을 살펴보니, Oracle과 비슷합니다. 두 데이터베이스 모두 Role이라는 개념이 있어 Role에 권한을 부여할 수도 있습니다. 서로 다른 점은 약간의 사용법이 다를 뿐입니다. 이 글에서는 MySQL에서 사용되는 권한의 종류와 이를 부여하는 방법에 대해 알아보도록 하겠습니다. MySQL 권한 범주먼저, 데이터베이스 권한(Privileges)에 대해 살펴 보면, 권한은 데이터베이스 사용자(user)가 MySQL 서버에서 어떤 작업을 할 수 있지를 허용하는 것입니다. 예를 들어, 어떤 사용자는 데이터를 읽기만 할 수 있고, 다른 사용자는 데이터를 수정하거나 삭제할 수도 있죠. MySQL에서 이러한 권한을 어떻게 설정하는지 보겠습니다. MySQL에서 제공하는 권한은 다양하지만, 크게 세 가.. 2024. 8. 23. 데이터 이행 검증 방법, 정합성, 무결성을 어떻게 보장할까? 데이터 이행 전략을 세우고 실 이행이 이루어지는데요. 이때 중요한 것이 검증입니다. Source 시스템에서 Target 시스템으로 문제없이 이행되었는지 확인하는 것이죠. 이때 검증 체계와 방안을 마련해야 하는데요. 데이터 검증 과정에서 문제가 발견되면, 이행된 데이터를 수정하거나 다시 이행하는 등 조치가 필요합니다. 이 부분을 반복해서 오류가 하나도 없이 준비하는 과정이 이행 테스트입니다. 이 글에서는 Oracle에서 MySQL로의 데이터 이행을 한다고 가정할 때 검증해야 할 항목은 아래와 같습니다. 각 검증 구분별로 하나하나 알아 보겠습니다. 검증 방법의 자동 검증은 프로시저로 등록하여 자동으로 검증하는 부분이고, 수동 검증은 데이터를 샘플링해서 일회성 검증으로 해도 되는 부분입니다. 검증 구분검증.. 2024. 8. 20. MySQL 실행 계획의 "Extra" 필드로 튜닝 방법 MySQL의 실행계획을 볼 때 그냥 무시하고 넘어가는 필드가 있습니다. 바로 제일 마지막에 있는 "Extra" 필드죠. 생각보다 이 텍스트를 잘 해석한다면 더 좋은 쿼리 성능을 낼 수 있습니다. 이글에서는 Extra 필드를 이해하고 해석하면 MySQ이 쿼리를 개선할 수 있는 요소에 대해 알아보도록 하겠습니다. 만약 MySQL 실행 계획에 대해 아직 이해하지 못했다면 아래 내용을 먼저 읽고 오는 것을 권장합니다. Extra 필드는 실행 계획의 일부입니다. MySQL 실행계획 보는 법, 성능을 올리는 유일한 방법!! Extra 필드 해석실행 계획의 "Extra" 필드는 MySQL이 쿼리를 처리하는 방법에 대한 추가 정보를 제공합니다. 추가 정보처럼 보일 수도 있지만 성능 튜닝을 위한 인사이트를 줄 수도 있습.. 2024. 8. 14. 이전 1 2 3 4 5 ··· 10 다음