본문 바로가기

Computer Science

[MySQL] 인덱스를 사용하는 이유, B-Tree 구조 및 동작 방식 개요MySQL InnoDB 엔진이 데이터를 디스크에 읽고 쓰는 방식을 알아보고, 인덱스를 적용하면 왜 성능이 개선되는 것인지 살펴보고자 합니다. 1. 데이터 읽기/쓰기와 디스크 드라이브 데이터베이스에서 작성한 데이터는 디스크 드라이브에 저장되어 영속됩니다. 컴퓨터에서 CPU나 메모리 등의 주요 장치는 전자식 장치지만, HDD는 기계식 장치입니다. 디스크에 데이터를 쓰고 읽는 데 걸리는 시간은 디스크 헤더를 물리적으로 움직이는 단계에서 결정됩니다. 때문에 데이터베이스 서버에서는 데이터를 읽어올 때 하드 디스크 드라이브가 병목지점이 됩니다. 이러한 단점을 개선하기 위해 SSD가 출시되었습니다. 솔리드 스테이트 드라이브는 기존의 HDD에서 플래터(원판)를 제거하고 그 대신 플래시 메모리를 장착하고 있습니다. .. 더보기
[네트워크] 쿠키와 세션이란? + 스프링 MVC에서 사용법 1. 쿠키 (Cookie)쿠키란?쿠키는 사용자의 브라우저에 저장되는 데이터입니다. 웹사이트는 쿠키를 사용해 사용자가 이전에 방문했을 때의 정보를 유지할 수 있습니다.장단점장점상태 유지: 사용자가 웹 사이트를 다시 방문할 때 이전 상태를 유지할 수 있습니다.간편한 구현: 브라우저에서 쿠키를 관리하기 때문에 서버 측에서 쿠키를 지정하기만 하면 되어 간단합니다.클라이언트에 저장: 서버 자원을 절약할 수 있습니다.단점보안: 쿠키는 클라이언트 측에 저장되므로 민감한 정보를 암호화하지 않으면 보안 취약점이 생길 수 있습니다.저장 용량 제한: 각 쿠키의 크기는 4KB로 제한되며, 브라우저 당 저장 가능한 쿠키 수에도 제한이 있습니다.브라우저 종속적: 브라우저 설정에 따라 쿠키 사용이 제한될 수 있습니다.사용방법서버에.. 더보기
[MySQL] 서버 구조와 동작 원리 - MySQL 엔진, 스토리지 엔진 1. MySQL 서버 전체 구조MySQL 엔진MySQL 엔진은 커넥션 관리, SQL 명령어 처리, 캐시 & 버퍼 관리, 스레드 관리 등을 담당합니다.커넥션 핸들러: MySQL 서버 사용자인 응용 프로그램과 커넥션을 체결합니다.SQL 인터페이스: 사용자가 작성한 SQL 명령어를 DBMS 서버 내부로 전달합니다.SQL 파서: SQL 명령어를 분석해 Syntax Tree를 형성한 뒤 옵티마이저에게 전달합니다.SQL 옵티마이저: SQL 명령어를 최적화해 실행 계획을 세웁니다.캐시 & 버퍼: 데이터를 메모리에 저장하여 성능을 향상시킵니다. 스토리지 엔진데이터 저장 방식을 관리하고 실제 물리적 디스크에 접근합니다.InnoDB와 MyISAM 등이 대표적인 스토리지 엔진입니다. 핸들러 APIMySQL 엔진과 스토리지 .. 더보기