SQL 6

MySQL 인덱스를 활용한 성능 최적화

MySQL에서 인덱스(Index)를 사용한 성능 최적화란? MySQL에서 인덱스(Index)를 사용한 성능 최적화란, 데이터베이스가 특정 데이터를 빠르게 찾을 수 있도록 데이터의 위치를 미리 정리하여 보관하는 방법임. 인덱스는 흔히 도서관의 책 색인에 비유할 수 있음. 예를 들어, 도서관에서 특정 주제의 책을 찾으려면, 책 전체를 하나씩 확인하는 대신 색인을 보고 원하는 책을 바로 찾는 것과 같음.인덱스를 설정하면 MySQL 역시 데이터를 빠르게 검색할 수 있게 됨. 인덱스가 없을 때의 문제점 (성능 저하) 먼저, 인덱스가 없을 경우의 문제를 알아보겠음. 예를 들어, 다음과 같은 테이블이 있다고 가정함: 예시 테이블 (user):idusernameageemail1kim25kim@test.com2lee28..

Infra/Performance 2025.03.21

[SQL] SQL Dialects (SQL 방언)

**SQL Dialects(방언)**이란 각 데이터베이스 시스템(DBMS)이 지원하는 SQL 문법, 기능, 최적화 방식이 다르게 구현된 것을 의미함.즉, 표준 SQL(ANSI SQL)을 기반으로 하지만, DBMS마다 특화된 기능이 추가된 SQL 변형 버전이라고 할 수 있음. 📌 1. SQL Dialects란?✅ SQL 방언(Dialect)의 개념 • SQL은 데이터베이스를 조작하는 표준 언어이지만, 모든 DBMS가 100% 동일한 SQL을 지원하지 않음. • 각 DBMS는 ANSI SQL을 기반으로 자체적인 기능과 문법을 추가하여 최적화함. • 따라서 DBMS마다 SQL 문법과 동작 방식이 다를 수 있음. • 예) MySQL과 PostgreSQL은 LIMIT을 사용하여 페이징 처리하지만, SQL Ser..

DB/MySQL 2025.02.21

[SQL] CHAR, VARCHAR

텍스트 데이터를 저장하는 데 사용되는 문자열 데이터 타입둘 다 문자 데이터를 저장하지만, 저장 방식과 성능 특성이 다르다1. CHAR1.1. 정의고정 길이(Fixed-length) 문자열 데이터 타입저장하려는 데이터의 길이가 지정한 길이보다 짧더라도 빈 공간을 공백 문자로 채움1.2. 특징고정된 크기 :데이터가 길이보다 짧으면 남은 공간을 공백으로 채워 저장예를 들어, CHAR(10)에 "cat"을 저장하면, 실제로는 "cat "로 저장됨빠른 속도 :고정된 길이 때문에 읽기와 쓰기 성능이 빠름데이터를 처리할 때, 문자열 길이를 계산하지 않아도 됨메모리 낭비 :데이터 길이가 자주 달라지는 경우, 빈 공간을 채우기 때문에 저장 공간이 낭비됨1.3. 예제 CREATE TABLE example_char ( ..

DB/MySQL 2024.12.18

[SQL] 트랜잭션

트랜잭션은 데이터베이스 관리에서 작업의 단위를 의미한다하나의 트랜잭션은 일련의 SQL 작업들을 논리적으로 묶어 처리하며,이 작업들이 모두 성공하거나 실패하는 원자성(Atomicity)을 보장한다1. 트랜잭션의 기본 개념1.1. 트랜잭션이란?데이터베이스의 상태를 변경하는 작업 단위데이터베이스는 트랜잭션 단위로 작업을 처리하며, 각 트랜잭션은 일관성과 안정성을 유지해야 한다1.2. 트랜잭션의 주요 특징 (ACID 속성)트랜잭션의 신뢰성을 보장하기 위해 ACID 속성을 따른다1.2.1. Atomicity (원자성)트랜잭션의 작업은 모두 성공하거나 모두 실패해야 한다부분적으로 작업이 수행된 상태는 허용되지 않음1.2.2. Consistency (일관성)트랜잭션이 완료된 후에도 데이터베이스는 항상 일관된 상태를 ..

DB/MySQL 2024.12.17

[SQL] 연산자

산술 연산자+더하기-빼기*곱하기/나누기%나머지비교 연산자=같음!= 또는 같지 않음 작음>큼작거나 같음>=크거나 같음논리 연산자AND모든 조건이 참이어야 함OR하나 이상의 조건이 참이면 참NOT조건의 논리값을 반전비트 연산자&비트 AND|비트 OR^비트 XOR~비트 NOT기타 연산자BETWEEN ... AND ...BETWEEN a AND ba와 b 사이NOT BETWEEN a AND ba와 b 사이가 아닌것ININ ()()에 포함된 것NOT IN ()()에 포함되지 않은 것LIKELIKE "A%"A로 시작하는 것LIKE "%A"A로 끝나는 것LIKE "%A%"A를 포함하는 것NOT LIKE "%A%"A를 포함하지 않는 것NULLIS NULLNULL인 것IS NOT NULLNULL이 아닌 것ALL하위 쿼리..

DB/MySQL 2024.12.10

[SQL] SQL이란?

DB(Database)관련있는 데이터들의 조직화된 집합 테이블들을 묶어주는 폴더 같은 개념. 테이블 - 표. 엑셀파일 같은 개념표 - 칼럼(열) + 로우(행)칼럼 - 번호, 이름, 나이, 연락처 등등 표에서 칼럼은 한줄만 존재하고, 로우는 N줄 존재할 수 있다 SQL데이터베이스를 관리하고 조작하기위해 사용하는 언어간단히 명령어 살펴보기종류DBTABLEROW생성CREATE DATABASE ~~;CREATE TABLE ~~ ();INSERT INTO articleSET ~~;조회SHOW DATABASES;SHOW TABLES;SELECT * FROM article;수정XALTER TABLE ~~UPDATE articleSET ~~;삭제DROP DATABASE ~~;DROP TABLE ~~;DELETE FRO..

DB/MySQL 2024.12.03