Database/MySQL
-
[MySQL] innodb_rollback_on_timeout 알아보기 (Lock wait timeout exceeded; try restarting transaction)Database/MySQL 2024. 6. 19. 07:02
- 목차 들어가며.innodb_rollback_on_timeout 은 MySQL InnoDB 스토리지 엔진에서 트랜잭션이 잠금 대기 시간 초과(lock wait timeout) 에 도달했을 때, 해당 트랜잭션을 롤백하는 방식을 결정하는 시스템 변수입니다.innodb_rollback_on_timeout 설정값은 OFF 또는 ON 을 가집니다.기본값은 OFF 입니다. innodb_rollback_on_timeout 이 ON 으로 설정되었을 때에,SQL Session 이 Lock 을 획득하기 위한 대기 시간이 innodb_lock_wait_time 으로 설정된 시간을 초과한다면,SQL Session 이 Rollback 되며 Transaction 이 종료됩니다. 반면에 innodb_rollback_on_time..
-
[MySQL] foreign_key_checks 알아보기Database/MySQL 2024. 3. 26. 07:29
- 목차 들어가며. 이번 글에서는 MySQL 의 테이블 간 외래키 제약 (Foreign Key Constraints) 을 On/Off 할 수 있는 설정인 foreign_key_checks 에 대해서 알아보려고 합니다. On and Off foreign_key_checks. MySQL 실행하기. 먼저 실습을 위해서 도커를 활용한 MySQL 서버를 실행시켜보겠습니다. docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.23 그리고 Foreign Key 관계의 테이블 2개를 생성해보겠습니다. docker exec -it mysql mysql -uroot -p1234 create database test; use test; ..
-
[MySQL] group_concat 함수 알아보기Database/MySQL 2024. 3. 8. 21:54
- 목차 group_concat ?group_concat 함수는 MySQL 의 집계함수 중의 하나입니다.집계함수란 Group By 문장과 함께 쓰여져 나열되는 값들을 하나의 값으로 축소시키는 역할을 합니다.예를 들어서 List -> Item, Vector -> Scalar 와 같은 형식으로 Collection 타입의 값을 Single Item 값으로 변형할 수 있습니다.대표적으로 Max, Sum, Avg, Reduce 등이 존재하죠.Collection 의 여러 값들 중에서 최대, 최소, 평균, 합계 등을 계산하여 하나의 값으로 축소시킵니다. group_concat 은 이러한 Aggregation Function 으로 사용됩니다.동작 방식은 Collection 을 하나의 나열된 String 으로 반환합니다..
-
[MySQL] show slave status 알아보기 ( replica status )Database/MySQL 2024. 1. 10. 22:59
- 목차 들어가며.SHOW SLAVE STATUS 는 MySQL Replicas 에서 복제 상태를 확인할 수 있는 MySQL 명령어입니다. 이 명령어는 MySQL Replica 에서 Replication 이 정상적으로 작동하고 있는지, 복제 지연이 발생하고 있는지, 또는 복제에 실패한 이유가 무엇인지 등을 파악하는 데 사용됩니다.show slave status 명령어는 MySQL Replica 에서만 실행 가능하여, 현재의 Replication 상태를 출력합니다. 이와 유사하게 MySQL 의 Primary 서버에서는 show master status 명령어를 사용할 수 있습니다. MySQL Replication 구축.두개의 MySQL Docker Container 를 통해서 MySQL 의 Replicat..
-
[MySQL] auto.cnf & server-uuid 알아보기Database/MySQL 2022. 12. 19. 22:55
- 목차 auto.cnf ?auto.cnf 파일은 MySQL 서버가 초기화될 때 자동으로 생성되는 파일입니다.auto.cnf 파일은 단 하나의 정보를 저장하는데요.이는 MySQL 이 자신을 식별하기 위한 UUID 를 자동으로 생성하고, 이 server-uuid 를 auto.cnf 파일 에 저장합니다. server-uuid 는 my.cnf 파일에서 설정하는 server_id 와는 다릅니다.server-uuid 와 server_id 모두 MySQL 서버를 식별하기 위한 고유값이라는 공통점이 있지만,server_id 는 MySQL Replication 에서 Primary 와 Replica 를 구별하기 위한 목적으로 사용되며,server-uuid 는 GTID ( Global Transaction Identifi..
-
[MySQL] Slow Query 알아보기 ( slow_query_log, long_query_time )Database/MySQL 2021. 12. 15. 10:30
- 목차 들어가며.Slow Query Log 는 MySQL 서버에서 실행 시간이 일정 시간 이상 소요된 쿼리들을 기록하는 로그 파일입니다.이번 글에서는 Slow Query 와 관련된 여러 가지 설정과 활용 방법 등에 대해서 알아보는 시간을 가지겠습니다. slow_query_log.MySQL 에서는 Slow Query 의 기록을 위한 몇가지 설정이 있습니다.먼저 my.cnf 파일에서 slow_query_log 을 ON 또는 OFF 를 통해 활성화/비활성화시킬 수 있습니다.그리고 slow_query_log_file 설정을 통해서 Slow Query Log File 의 파일 위치를 지정할 수 있습니다. 아래의 예시는 slow_query_log_file 설정을 통해서 Slow Query Log 의 파일 위치와 ..