RealMySQL

1. 핵심 문제 — 왜 필요한가?컬럼을 함수로 가공하면 인덱스를 탈 수 없다.-- created_at에 인덱스가 있어도 풀스캔SELECT * FROM users WHERE MONTH(created_at) = 3;이를 해결하기 위해 표현식 자체를 인덱싱하는 두 가지 방법이 존재한다.2. Generated 컬럼특정 표현식으로 값이 자동 계산되는 컬럼. 사용자가 직접 값을 입력/수정 불가.Virtual vs Stored구분값 저장 위치계산 시점Virtual (기본값)디스크 저장 ❌, 읽을 때마다 계산레코드 읽기 전Stored디스크 저장 ✅INSERT/UPDATE 시PRIMARY KEY는 Stored 타입만 가능생성 문법ALTER TABLE usersADD COLUMN email_domain VARCHAR(10..
varchar와 char는 둘 다 문자열을 저장한다는 공통점이 있다.이렇게 알고는 있었다.char는 고정적인 문자열일 때 사용하고, varchar는 가변적인 문자열에 사용한다고.varchar는 약 16,000글자, char는 최대 255글자를 저장할 수 있다.문자열 캐릭터 셋에 따라 글자당 몇 바이트를 할당할지 결정된다. 즉 MySQL에서 VARCHAR(100)은 캐릭터 셋에 상관없이 100글자를 저장할 수 있다는 것이다. char도 마찬가지다. 그러면 어떤 차이일까?char의 경우 디스크에 저장될 때 항상 최대 크기만큼 예약된 공간을 사용한다.varchar의 경우 실제 데이터 길이만큼만 공간을 사용한다.char(100) → 실제 글자가 30글자 → 100글자 분량의 공간 차지 (한글 기준 3 * 100..
솜사탕코튼
'RealMySQL' 태그의 글 목록