[DB] MySQL 인덱스 사용 가이드
·
개발/Database
MySQL 인덱스 (Index) 사용 가이드목차인덱스란 무엇인가?인덱스의 작동 원리인덱스의 종류인덱스 생성 및 관리인덱스 성능 최적화실제 예제인덱스란 무엇인가?인덱스는 데이터베이스에서 데이터를 빠르게 찾을 수 있도록 도와주는 자료구조입니다. 책의 목차나 색인과 같은 역할을 하며, 전체 테이블을 스캔하지 않고도 원하는 데이터를 빠르게 찾을 수 있게 해줍니다.인덱스가 필요한 이유전체 테이블 스캔(Full Table Scan) 방지: 대용량 데이터에서 성능 향상정렬된 데이터 접근: ORDER BY, GROUP BY 성능 개선중복 값 제거: DISTINCT 연산 최적화조인 성능 향상: 외래키 인덱스 활용인덱스의 작동 원리1. B-Tree 구조MySQL의 기본 인덱스는 B-Tree(Balanced Tree) 구조..
[DB] - MySQL B-Tree
·
개발/Database
MySQL B-Tree 배워보기모든 코드는 깃허브에서 볼수 있습니다.1. B-Tree란?B-Tree는 데이터베이스 인덱싱에서 가장 널리 사용되는 자료구조입니다. 이진트리를 확장한 형태로, 각 노드가 여러 개의 자식을 가질 수 있는 균형잡힌 트리입니다.B-Tree의 특징각 노드는 여러 개의 키를 가질 수 있음모든 리프 노드가 같은 레벨에 있음 (균형잡힌 구조)검색, 삽입, 삭제 연산이 모두 O(log n) 시간복잡도디스크 기반 저장소에 최적화B-Tree vs 이진트리이진트리: 각 노드가 최대 2개의 자식B-Tree: 각 노드가 여러 개의 자식 (보통 수백~수천개)B-Tree: 디스크 I/O 최소화에 특화B-Tree의 핵심 메커니즘1. 노드 분할 (Node Splitting)B-Tree에서 노드가 가득 찰 ..
[MySQL] MySQL 비밀번호 정책 설정 및 변경 방법
·
개발/Database
1. 현재 비밀번호 정책 확인하기MySQL의 현재 비밀번호 정책을 확인하려면 다음 명령어를 사용합니다:SHOW VARIABLES LIKE 'validate_password%';이 명령어를 실행하면 현재 설정된 비밀번호 관련 정책들을 모두 확인할 수 있습니다.2. 비밀번호 정책 수준 변경하기MySQL은 세 가지 수준의 비밀번호 정책을 제공합니다:-- LOW 레벨로 설정SET GLOBAL validate_password.policy = 0;-- MEDIUM 레벨로 설정SET GLOBAL validate_password.policy = 1;-- STRONG 레벨로 설정SET GLOBAL validate_password.policy = 2;각 정책 레벨의 특징:LOW (0): 비밀번호 길이만 검사합니다.MEDI..
[Database] MYSQL - VARCHAR vs TEXT
·
개발/Database
게시글 작성시 DB저장시 내용부분의 타입은 뭘로 쓸지 VARCHAR로 하면 길이는 얼마나 줘야할지 고민했다. 이참에 VARCHAR와 TEXT의 차이를 알아보고 앞으로 어떤 타입을 적용시키는게 좋을까를 정리하려고 한다. 모든 테이블은 InnoDB를 기반으로 한다. 1. VARCHAR varchar은 variable character 즉 가변적인 캐릭터이다. char 타입과 비교해보면 char 타입은 고정 크기이고 varchar은 가변 크기인 것이다. varchar를 설정할때 항상 괄호 안에 있는 숫자가 글자 수인지 바이트 수 인지 헷갈렸다. -> 글자 수라고 한다. 즉 varchar(255) 라고 설정하면 255자 이하의 문자열을 사용할 수 있다. varchar은 최대 65535개의 문자열을 저장할 수 있..