본문 바로가기
728x90

Backend/Mysql4

[MySQL] MySQL 설치 후 Database 생성하기 [MySQL] MySQL 설치 후 Database 생성1. 데이터베이스 생성CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs;'my_database' : 만들고자 하는 DB 이름'utf8mb4' : 이모지까지 지원하는 문자 인코딩(표준)'utf8mb4_0900_as_cs' : 유니코드 9.0 기준, 대소문자 구분 문자 인코딩은 현재 표준으로 utf8mb4를 사용한다. 따라서 해당 값을 넣어주면 되고 정렬 규칙은 아래  특징에 따라 사용하고자 하는 Collation을 사용하면 된다. Collation의미특징utf8mb4_0900_ai_ciAccent-insensitive, Case-insensitive기본값... 2025. 4. 5.
[MySQL] Deadlock(교착 상태) 원인 Deadlock(교착 상태) 원인 MySQL에서 Deadlock(교착 상태)는 두 개 이상의 트랜잭션이 서로가 필요로 하는 자원을 서로 잠금하고 있어 두 개 트랜잭션이 모두 완료하지 못하고 Rollback(롤백)이 되는 상태를 말한다. 일반적으로 Deadlock은 여러 트랜잭션이 동시에 데이터베이스 자원(행, 테이블 등)을 접근할 때 발생할 수 있으며 발생되는 원인에 대해 알아보자. 1. 교차 락(Cross Locking) 두 개 이상의 트랜잭션이 서로의 필요로 하는 자원을 잠그고, 상대방이 소유한 락을 기다리며 발생하는 상황이다.트랜잭션 A가 id = 1인 행을 배타적 락을 건다.트랜잭션 B가 id = 2인 행을 배타적 락을 건다.트랜잭션 A가 id = 2인 행을 배타적 락을 걸기 위해 트랜잭션 B가 .. 2024. 10. 27.
[Mysql] Lock Type Lock Type1. Share Lock(공유락) 공유 락(Share Lock)은 다른 트랜잭션이 읽기는 가능하지만, 쓰기는 제한하는 락이다. 여러 트랜잭션이 동시에 공유 락을 걸 수 있으므로 동시에 데이터를 읽을 수 있지만, 데이터를 변경하는 작업은 허용하지 않는다. 즉, 데이터를 읽을 동안 데이터 변경을 반지해야 하는 경우에 사용된다.-- id = 1인 행을 읽기가 완료될 때까지 수정이 불가하다.SELECT * FROM my_table WHERE id = 1 LOCK IN SHARE MODE;  2. Exclusive Lock(배타적 락) 배타적 락(Exclusive Lock)은 다른 트랜잭션이 해당 데이터에 대해 읽기와 쓰기 모두 접근하지 못하게 완전히 잠그는 락이다. 한 트랜잭션이 배타적 락을 설.. 2024. 10. 27.
[MySQL] index 생성 시 고려할 점 MySQL 사용 시 고려할 점과 튜닝 방법(241027 최신 업데이트)EXPLAN을 이용하여 조회 시 사용된 INDEX 확인 EXPLAN을 사용하여 데이터를 읽을 때 어떻게 읽는지 type을 통해 데이터를 읽는 방법(접근 방식)을 보고, 쿼리 성능을 분석 및 최적화하는 것이 좋다.# 예시explainselect * from test1 where id = 1;+--+-----------+-----+----------+-----+-------------+-------+-------+-----+----+--------+-----+|id|select_type|table|partitions|type |possible_keys|key |key_len|ref |rows|filtered|Extra|+--+---.. 2024. 10. 20.
728x90