목록SQL (5)
개발자는 기록이 답이다

1. 쿼리파서 사용자 요청으로 들오온 쿼리 문장을 토큰(MySQL이 인식할 수 있는 최소 단위의 어휘나 기호)으로 분리해 트리 형태의 구조로 만들어내는 작업. 쿼리 문장의 기본 문법 오류는 이 과정에서 발견되고 사용자에게 오류 메세지를 전달한다. 2. 전처리기 파서과정에서 만들어진 파서 트리를 기반으로 쿼리 문장에서 구조적인 문제점이 있는지 확인한다. 각 토큰을 테이블 이름이나 칼럼 이름, 또는 내장 함수와 같은 개체를 매핑해 해당 객체의 존재 여부와 객체의 접근권한 등을 확인하는 작업을 수행한다 실제 존재하지 않거나 권한 상 사용할 수 없는 개체의 토큰은 이 단계에서 걸러진다. 3. 옵티마이저 사용자의 요청으로 드러온 쿼리 문장을 저렴한 비용으로 가장 빠르게 처리할지 결정하는 역할 DBMS의 두뇌에 해..

MySQL의 동시성 관리: 잠금(Lock)과 트랜잭션, 트랜잭션의 격리 수준(Isolation level) 트랜잭션은 작업의 완전성을 보장해주는 것이다. 즉, 논리적인 작업 셋을 모두 완벽하게 처리하거나, 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어준다. 잠금(Lock)과 트랜잭션은 서로 비슷한 개념이지만 사실 잠금은 동시성을 제어하기 위한 기능이고, 트랜잭션은 데이터의 정합성을 보장하기 위한 기능이다. 하나의 회원 정보 레코드를 여러 커넥션에서 동시에 변경하려고 하는데 잠금이 없다면 하나의 데이터를 여러 커넥션에서 동시에 변경할 수 있게 된다. 결과적으로 해당 레코드의 값은 예측할 수 없는 상태가 된다. 잠금 : 여러 커넥션에서 동시에 동일한 자원을 요..

맥북 mysql 설치 방법 3가지 1. 공식 웹 사이트 다운로드: MySQL을 공식 웹 사이트에서 다운로드하여 설치하는 경우 컴퓨터에 MySQL을 직접 설치하는 것이므로 충돌 및 버전 관리의 어려움이 발생할 수 있습니다. 또한, 설치 및 제거가 복잡할 수 있습니다. 2. Homebrew: Homebrew를 사용하여 패키지 관리를 할 경우, Homebrew를 통해 설치된 MySQL 버전을 다루게 됩니다. 따라서 MySQL을 Homebrew로 설치하고 동시에 다른 방식으로 MySQL을 설치한다면, 버전 충돌 및 서비스 충돌 문제가 발생할 수 있습니다. 3. 도커 이미지 실행: 도커 컨테이너를 사용하는 경우, 컨테이너 내에서 독립적인 환경에서 MySQL이 실행됩니다. 다른 방식으로 설치된 MySQL과 독립적이..

2023.10.06 - [SQL] - Subquery의 select, where, from 절 비교 예제, With절 예제 Subquery의 select, where, from 절 비교 예제, With절 예제 1. Subquery란 무엇인가? 쿼리문 안에 들어가 있는 쿼리를 subquery라고 합니다. 예를 들어, users테이블과 orders테이블이 있다고 가정합시다. 2개의 테이블을 이용해서 kakaopay로 결제한 유저들의 정보 strong-park.tistory.com 1. 문자열 1) SUBSTRING_INDEX() : 문자열 쪼개보기 SUBSTRING_INDEX(string, delimiter, count) -- string: 원본 문자열입니다. delimiter: 구분자입니다. 문자열을 나눌..