본문 바로가기

MySQL24

MySQL 테이블 단편화 일반적으로 데이터베이스 사용자는 DELETE 문을 사용한 테이블 단편화에 대하여 알고 있습니다. 대량 삭제를 수행할 때마다 대부분의 경우 디스크 공간을 회수하기 위해 항상 테이블을 다시 작성합니다. 그러나 DELETE만 테이블 단편화를 일으킬 수 있지 않습니다. INSERT 문으로 테이블 조각화가 어떻게 발생하는지 확인 해 보겠습니다. MySQL에는 두 가지 종류의 단편화가 있습니다. 테이블 내에서 일부 InnoDB 페이지가 완전히 비어 있는 단편화. 일부 InnoDB 페이지가 완전히 채워지지 않은 조각화(페이지에 여유 공간이 있음). INSERT를 사용한 테이블 조각화에는 세 가지 사례가 있습니다. INSERT ROLLBACK INSERT 실패 페이지 분할을 통한 단편화 테스트 환경 아래와 같이 테스트.. 2021. 9. 2.
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.