본문 바로가기

전체 글205

Recursive CTE(Common Table Expression) 활용 이전에 작성한 내용(MySQL 8.0 신기능 CTE 활용) 중에 재귀 쿼리에 대한 내용을 언급했었습니다. SQL은 일반적으로 재귀 쿼리 구조에 좋지 않지만 이제 MySQL에서 재귀 쿼리를 작성할 수 있습니다. MySQL 8.0 이전에는 stored routin을 생성해야만 재귀 쿼리가 가능했습니다. 재귀 CTE 쿼리란 무엇입니까? 재귀 CTE는 자체 이름을 참조하는 하위 쿼리가 있는 CTE입니다. 다음과 같은 경우에 특히 유용합니다. 시리즈 생성 계층적 또는 트리 구조의 데이터 순회 재귀적 CTE의 주요 구성 요소를 살펴보겠습니다. 다음은 이를 생성하는 구문입니다. WITH RECURSIVE cte AS ( initial_query -- "seed" member UNION ALL recursive_que.. 2021. 8. 31.
MySQL 8.0 신기능 CTE(Common Table Expression) 활용 CTE란? CTE(Common Table Expression)는 서브 쿼리로 쓰이는 파생테이블(derived table)과 비슷한 개념으로 사용됩니다. CTE는 ANSI SQL 99의 일부이며 MySQL 8.0.1에서 도입되었습니다. CTE와 비교 대상으로는 VIEW가 있습니다. VIEW는 만들기 위해 권한이 필요하고 사전에 정의를 해야합니다. 반면, CTE는 권한이 필요 없고 하나의 쿼리문이 끝날때까지만 지속되는 일회성 테이블입니다. CTE는 주로 복잡한 쿼리문에서 코드의 가독성과 재사용성을 위해 파생테이블 대신 사용하기에 유용합니다. CTE를 사용하는 주요 이유는 다음과 같습니다. 쿼리의 가독성 향상 동일한 쿼리에서 여러 번 참조 가능 향상된 성능 사용자가 VIEW를 생성할 수 없는 경우 VIEW의 .. 2021. 8. 26.
MySQL Shell Upgrade Checker Utility MySQL Shell은 훌륭한 소프트웨어입니다. 또 mysql 클라이언트일 뿐만 아니라 JavaScript 및 Python용 스크립팅 기능을 제공하는 도구이기도 합니다. 그리고 그것으로 할 수 있는 다른 일 중 하나는 MySQL 5.7 서버가 업그레이드할 준비가 되었는지 확인하는 것입니다. MySQL Shell Upgrade Checker Utility는 MySQL 5.7 인스턴스에서 호환성 오류 및 업그레이드 문제를 확인하는 스크립트입니다. "확인"이라는 단어에 주목하는 것이 중요합니다. 자동으로 해결해 주지 않습니다. mysqlchk 프로그램과 –check-upgrade 매개변수는 유사한 작업을 수행합니다. CHECK TABLE … FOR UPGRADE 명령을 호출합니다. 자세한 내용은 https:/.. 2021. 8. 24.
MySQL 8 및 MySQL 5.7 메모리 소비 대규모 시스템에서 테스트 및 개발을 위한 MySQL을 실행하는 경우가 많지만 때로는 작은 클라우드 인스턴스에서 MySQL을 실행하거나 랩톱에서 실행하고 싶을 때가 있습니다. 이러한 경우 MySQL 8 및 MySQL 5.7 메모리 소비가 매우 중요합니다. MySQL 8과 MySQL 5.7을 비교할 때 MySQL 8이 더 많은 메모리를 사용한다는 것을 알아야 합니다. 동일한 워크로드를 실행하는 MySQL 8 및 MySQL 5.7이 있는 1GB VM에 대한 기본 테스트에서 다음 vmstat을 표시됩니다. MySQL 5.7 vmstat 출력 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free b.. 2021. 8. 24.