데이터아키텍처90 데이터베이스와 스키마, 똑같은 말이라고요? 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. MySQL 힌트(Hint) 종류 및 사용법, 꼭 확인해야 할 주의사항 Oracle에서도 힌트가 있었듯이, MySQL에서도 힌트를 사용할 수 있습니다. 우리가 수행하는 쿼리 성능을 최적화하려면 인덱스 설정, 조인 방식, 데이터베이스 설정 등을 고려해야 합니다. 그러나 가끔은 MySQL 옵티마이저가 제시하는 실행계획이 기대에 미치지 못할 때가 있습니다. 이럴 때 힌트(Hint)를 사용하여 MySQL 옵티마이져에게 내가 원하는 실행 계획을 생성하도록 요청할 수 있습니다. 이글은 김사원이 "MySQL 힌트는 오라클하고 다르네요"라는 말이 화두가 되어 작성하게 됐습니다. 뒷부분에 주의 사항까지 정리했으니 확인하세요. MySQL 힌트 사용법MySQL 힌트는 쿼리에서 특정 실행 계획을 지정하도록 하는 명령어입니다. 쿼리 옵티마이저(Query Optimizer)는 힌트를 참고하여 최적의.. 2024. 8. 13. MySQL 파티션 종류 및 사이즈 설계 전략, 안하면 조회 안되는 테이블? MySQL 데이터베이스가 많은 데이터를 컨트롤하기에는 한계가 있다는 말을 한적 있습니다. 그래서 페이징처리도 MySQL만의 방법으로 처리해야 합니다. 특히, MySQL의 경우 테이블 사이즈에 영향을 많이 받는 특징이 있습니다. 이 부분에 대해서는 “Why MySQL Could Be Slow With Large Tables”라는 링크에 글에서도 언급하고 있고 그 하나의 대안으로 파티션을 제안하고 있습니다. 이 글에서는 어떤 경우에 파티션 테이블로 만들어야 하는지 그 기준을 알아보도록 하겠습니다. 느려진 테이블 파티션이 답이다어느 날 오후, MySQL에서 일부 서비스에서 데이터를 보여주는 게 점점 느려진다는 확인 요청이 들어왔습니다. 특히, 상품의 가입 내역을 저장하는 테이블이 100GB를 넘어서면서 쿼.. 2024. 8. 12. 이전 1 2 3 4 5 6 ··· 10 다음