2024/12/28 2

[MySQL] Error Handling

DB를 사용하다가 에러가 발생한 경험은 서버 개발자라면 무조건 있을 것 같은데요.바로 DBA에게 해당 사실을 공유하거나, 담당 개발자를 부른 경험이 있을까요? 서버 연결이 안돼요~~쿼리 에러 났어요~~ 그런데, 담당자가 부재중이거나 다른 업무로 바쁘다면…?! ㅠㅠ최소한 어떤 에러가 발생했고, 어떻게 하면 에러를 핸들링 할 수있을지 알아 봅시다! MySQL 에러 구분Global Errorserver-side 와 client-side 공용으로 발생Server Errorserver-side 에서만 발생ERROR 1146 (42S02): Table ‘test.no_such_table’ doesn’t exist일부 Server Error는 client-side 로 전달 됩니다.Client Errorclient-s..

[MySQL] 쿼리 실행 구조

쿼리 실행 구조쿼리를 실행하는 관점에서 MySQL의 구조를 간략하게 그림으로 표현하면 위와 같습니다. 이를 기능별로 나눠서 표현하면 아래와 같습니다.쿼리 파서전처리기옵티마이저실행엔진핸들러(스토리지엔진) 기능들에 대해서 상세하게 알아봅시다~! 쿼리 파서쿼리 파서는 사용자 요청으로 들어온 쿼리 문장을 토큰으로 분리하여 트리 형태의 구조로 만들어 내는 작업을 의미 합니다.쿼리 문장의 기본 문법 오류를 발견하고 사용자에게 오류 메시지를 전달합니다. 참고토큰이란 MySQL이 인식할 수 있는 최소 단위의 어휘나 기호를 의미 합니다. 전처리기파서 과정에서 만들어진 파서 트리를 기반으로 쿼리 문장에 구조적인 문제점이 있는지 확인합니다.각 토큰을 테이블 이름이나 컬럼 이름, 또는 내장 함수와 같은 개체를 매핑하여 해당 ..