반응형 분류 전체보기388 MySQL JOIN_FIXED_ORDER vs JOIN_ORDER 🔸 JOIN_ORDER✅ MySQL 8.0 이상에서만 사용 가능✅ Optimizer Hint 문법의 일부✅ 명시한 테이블 순서대로 고정된 JOIN 순서로 처리🔍 더 유연하고 세밀하게 제어 가능 (e.g. JOIN_PREFIX, JOIN_SUFFIX와 함께 사용 가능)🔹 예시:SELECT /*+ JOIN_ORDER(t1, t2, t3) */ *FROM t1JOIN t2 ON ...JOIN t3 ON ...위 힌트는 옵티마이저가 t1 → t2 → t3 순서로 JOIN하도록 강제합니다.🔸 JOIN_FIXED_ORDER✅ MySQL 5.7부터 사용 가능✅ 쿼리 힌트가 아니라 쿼리 블록 힌트✅ FROM 절에 나온 테이블의 순서대로 고정된 JOIN 순서를 사용❌ 별도로 테이블 목록을 지정할 수 없음🔹 예시.. 2025. 6. 3. MySQL JOIN_ORDER, JOIN_PREFIX, JOIN_SUFFIX 비교 🔸 1. JOIN_ORDER의미: MySQL 옵티마이저에게 JOIN 순서를 고정하라는 힌트입니다.용도: 옵티마이저가 자동으로 JOIN 순서를 변경하지 않도록 하여, 사용자가 명시한 순서대로 JOIN이 실행되도록 강제합니다.🔹 예시:SELECT /*+ JOIN_ORDER(t1, t2, t3) */ *FROM t1JOIN t2 ON ...JOIN t3 ON ...위 힌트는 t1 → t2 → t3 순서로 JOIN하라는 의미입니다.성능 튜닝 시 옵티마이저가 비효율적인 JOIN 순서를 선택할 때 유용합니다.🔸 2. JOIN_PREFIX의미: JOIN 순서가 지정된 선행 테이블들(t1, t2, …)을 유지하되, 이후는 옵티마이저가 결정하게 합니다.용도: 초반 몇 개의 테이블 JOIN 순서만 고정하고, 나머지는.. 2025. 6. 3. 드라이빙(Driving) 테이블 정하는 방법 (임시 테이블, 일반 테이블) ✅ 1. 임시 테이블 vs 일반 테이블**보통 임시 테이블을 driving table (왼쪽)**으로 두는 것이 유리합니다.이유: 임시 테이블은 일반적으로 작고 메모리에 존재하는 경우가 많아, 먼저 읽고 일반 테이블과 조인하는 것이 효율적입니다.SELECT * FROM temp_table STRAIGHT_JOIN normal_table ON temp_table.id = normal_table.id;✅ 2. 임시 테이블 vs 임시 테이블둘 중 더 작은 테이블을 driving으로 쓰는 것이 좋습니다.두 임시 테이블의 크기나 인덱스 유무에 따라 다르므로 **실제 실행 계획(EXPLAIN)**을 보고 판단해야 합니다.SELECT * FROM smaller_temp STRAIGHT_JOIN larger_temp .. 2025. 6. 3. 2025년 6월 기준, MySQL의 최신 버전 ✅ 최신 MySQL 버전 요약버전유형출시일지원 종료 예정일8.4.5LTS (장기 지원)2025년 4월 15일2032년 4월9.3.0Innovation (기능 릴리스)2025년 4월 15일2025년 7월 예정8.0.42버그 수정 릴리스2025년 4월 15일2026년 4월🔍 버전별 특징MySQL 8.4.5 (LTS): 장기 지원 버전으로, 안정성과 장기적인 유지보수를 중시하는 환경에 적합합니다. 이 버전은 2032년까지 지원될 예정입니다.MySQL 9.3.0 (Innovation): 최신 기능과 개선 사항을 포함한 기능 릴리스 버전입니다. 새로운 기능을 빠르게 도입하고자 하는 환경에 적합하지만, 지원 기간이 짧을 수 있습니다.MySQL 8.0.42: 기존 8.0 버전의 최신 버그 수정 릴리스입니다. 8.0.. 2025. 6. 2. MySQL이 실제로 정렬 시 임시 파일(디스크)을 사용했는지 여부를 확인하는 방법 MySQL이 실제로 정렬 시 임시 파일(디스크)을 사용했는지 여부를 확인하는 방법✅ 1. SHOW STATUS로 확인 (세션 단위)SHOW SESSION STATUS LIKE 'Sort_merge_passes';🔹 설명:이 값이 0보다 크면, 메모리 정렬 버퍼를 넘겨서 디스크를 사용했다는 의미입니다.Sort_merge_passes는 filesort 도중 몇 번 외부 정렬(merge pass)을 했는가를 나타냅니다.🔹 사용 방법:쿼리 실행 전에 값을 저장:SHOW SESSION STATUS LIKE 'Sort_merge_passes';쿼리 실행다시 조회:SHOW SESSION STATUS LIKE 'Sort_merge_passes';차이가 1 이상이면 임시 파일(디스크 정렬) 발생한 것!✅ 2. EXP.. 2025. 6. 1. [Kotlin 번역] Kotlin releases Kotlin 2.0.0부터는 다음과 같은 유형의 릴리스를 제공합니다: • 언어 릴리스 (2.x.0): 언어에 주요 변경 사항을 도입하고 도구 업데이트를 포함합니다. 6개월에 한 번씩 릴리스됩니다. • 도구 릴리스 (2.x.20): 언어 릴리스 사이에 제공되며, 도구 업데이트, 성능 개선, 버그 수정이 포함됩니다. 해당 언어 릴리스 이후 3개월 후에 릴리스됩니다. • 버그 수정 릴리스 (2.x.yz): 도구 릴리스에 대한 버그 수정을 포함하며, 특정한 릴리스 일정은 없습니다. 언어 및 도구 릴리스마다, 새로운 기능을 정식 릴리스 전에 시도해볼 수 있도록 여러 개의 프리뷰(EAP) 버전도 제공합니다. 자세한 내용은 Early Access Preview 페이지를 참조하세요. Kotlin 릴리스에 대한 알림을.. 2024. 11. 21. [Kotlin 번역] Stability of Kotlin components 코틀린 언어와 도구 세트는 JVM, JS, Native 대상 컴파일러, 표준 라이브러리, 다양한 부가 도구 등 여러 구성 요소로 나뉩니다. 이러한 구성 요소 중 많은 부분은 안정 버전(Stable)으로 공식 출시되었으며, 이는 편리한 업데이트(Comfortable Updates)와 현대적인 언어 유지(Keeping the Language Modern) 원칙을 따르며 하위 호환성을 유지하는 방식으로 발전해왔음을 의미합니다. 피드백 루프(Feedback Loop) 원칙에 따라, 커뮤니티가 조기에 체험해볼 수 있도록 많은 것들이 초기 단계에서부터 공개됩니다. 따라서 일부 구성 요소는 아직 안정 버전으로 출시되지 않았습니다. 이들 중 일부는 매우 초기 단계에 있으며, 일부는 더 성숙한 상태입니다. 각 구성 요소.. 2024. 11. 20. [Kotlin 번역] Kotlin evolution principles 실용적인 진화의 원칙 프로그래밍 언어의 설계는 돌에 새겨진 것과 같지만, 이 돌은 비교적 부드러워서 어느 정도 노력하면 나중에 다시 형태를 바꿀 수 있습니다.- Kotlin 디자인 팀 Kotlin은 프로그래머를 위한 실용적인 도구로 설계되었습니다. 언어의 발전에 있어, Kotlin의 실용적 성격은 다음 원칙들로 요약될 수 있습니다: 1. 언어를 지속적으로 현대적으로 유지하기 2. 사용자와의 지속적인 피드백 루프 유지하기 3. 새로운 버전으로의 업데이트를 사용자에게 쉽고 편리하게 제공하기 Kotlin의 발전 방향을 이해하는 데 있어 이 원칙들은 핵심적이며, 이를 더 자세히 설명하면 다음과 같습니다. 1. 언어를 현대적으로 유지하기 시스템은 시간이 지남에 따라 레거시가 축적됩니다. 한때 최첨단 기술이었던 .. 2024. 11. 19. [Kotlin 번역] Kotlin language features and proposals 탐색 및 설계 • Kotlin 정적 메서드 및 정적 확장 • KEEP Proposal: statics.md • YouTrack Issue: KT-11968 • 컬렉션 리터럴 • KEEP Proposal: 정의되지 않음 • YouTrack Issue: KT-43871 • 오류 및 예외를 위한 유니언 타입 • KEEP Proposal: 정의되지 않음 • YouTrack Issue: KT-68296 • 이름 기반 구조 분해 • KEEP Proposal: 정의되지 않음 • YouTrack Issue: KT-19627 • 불변성 지원 • KEEP Notes: immutability • YouTrack Issue: KT-1179 KEEP 논의 • KMP Kotlin-to-Java 직접 actualization .. 2024. 11. 18. 이전 1 2 3 4 ··· 44 다음 반응형