Mysql & Maria 41

CentOS 7 Maria 10.3 환경구축

- OS : centos 7.9.2009 - DB : maria 10.9.3 [사전 설치사항] VMware : https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html CentOS 이미지 파일 : https://www.centos.org/download/ > download now 클릭하여 vmware 설치 > 설치 시 기본 설정값 그대로 next >> x86_64 click >> kakao 미러 사이트 click >> CentOS-7-x86_64-DVD-2009.iso 파일 다운로드 [vmware 에 centos 설치] kyumin/test1234 [mariadb 설치 및 서비스등록] 1. 접속 후 su -..

Mysql & Maria/admin 2024.01.31

Mysql xtrabackup 백업 및 복구 (slave 서버 재구성)

포스팅은 full backup 기준이며 slave 서버 재구성하는 시나리오 임. xtrabackup 방식 - mysqldump 형식이 아니므로 event_scheduler, 논리적 복구는 따로 적용해줘야함. - xtrabackup version : 8.0 - mysql version : mysql 8.0.27 ZSTD 가 compress 옵션 사용시 기본 압축 방식으로 변경되어 qpress 설치할 필요가 없어짐. 1. 백업 수행 xtrabackup --defaults-file=/etc/my.cnf \ --user="userid" \ --password="password" \ --backup \ --no-lock --parallel=4 \ --compress \ --compress-threads=4 \ -..

Mysql & Maria/admin 2024.01.11

트랜잭션 격리수준

DB 트랜잭션 격리 수준(Transaction isolation level)에 따른 동시성 이슈 가장 낮은 isolation 레벨 0의 경우 lock이 걸리지 않기때문에 속도는 매우 빠르나 동시 접근을 허용하기때문에 데이터 정합성에 문제가 생길 수 있고, 레벨3의 경우 완전히 lock을 걸어 동시 접근을 차단하고 순차적으로 처리 (serializable) 하기 때문에 정합성은 완벽하지만 동시에 처리 할 수 있는 양이 적어 속도가 매우 느리다. Isolation Level Dirty Read Nonrepeatable Read Phantom Read 레벨0 Read Uncommited 발생 발생 발생 레벨1 Read Committed X 발생 발생 레벨2 Repeatable Read X X 발생 레벨3 Se..

Mysql & Maria/admin 2023.11.29

root 비밀 번호 분실시

root 비밀번호를 분실할리가 없겠지만..? local [window] 에서 테스트 하려고 생성해둔 mysql server를 들어간지 오래 되었다 보니 까먹었다.. 비밀번호를 적어둔 것도 없고, 그렇다고 다시 설치하기엔 귀찮고 ..ㅋ root 비밀번호 분실했을때에 재설정 방법 공유 [window] 1. 실행중인 mysql 서버 중지 2. 관리자 권한이 있는 cmd 창에서 아래 방법 1,2 중 하나 실행 (설정파일 위치는 각자 위치에 맞게 mysql-init 파일 내용 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; 방법 1 . mysqld --init-file=C:\\mysql-init.txt 방법 2 . mysqld --defaults-file="C..

Mysql & Maria/admin 2023.11.28

Mysql lock 종류

MySQL에서는 여러 종류의 잠금(Lock)이 있습니다. 잠금은 데이터베이스에서 동시성을 관리하고 여러 트랜잭션 간의 충돌을 방지하기 위해 사용됩니다. 다음은 MySQL에서 주로 사용되는 잠금의 종류와 각 잠금 종류별로 발생 가능한 시나리오입니다 공유 잠금(Shared Lock): 설명: 여러 트랜잭션이 동시에 데이터를 읽을 수 있도록 하는 잠금. 발생 가능한 시나리오: 여러 트랜잭션이 동일한 데이터를 동시에 읽는 경우. 배타적 잠금(Exclusive Lock): 설명: 트랜잭션이 데이터를 읽거나 쓰기 위해 특정 데이터에 독점적으로 접근하는 잠금. 발생 가능한 시나리오: 트랜잭션이 데이터를 수정하거나 삭제하는 경우. 읽기 잠금(Read Lock) 및 쓰기 잠금(Write Lock): 설명: InnoDB ..

Mysql & Maria/admin 2023.11.26

mysql lock 발생 테스트

- 어떤 경우에 lock 이 발생하는지, lock 원인을 찾는 방법 테스트 ## 테스트 테이블 생성 CREATE TABLE select_lock (col1 VARCHAR(50), col2 VARCHAR(50)); INSERT INTO select_lock VALUES('1st', 'first'); INSERT INTO select_lock VALUES('2nd', 'second'); 1. Session A ( autocommit = off 상태에서 select 쿼리 수행) status : lock 발생 SET autocommit =0; SELECT * FROM select_lock; 2. Session B (lock 상태 조회) Shared_read lock 발생 확인 SELECT l.object_typ..

Mysql & Maria/admin 2023.11.26

mysql 성능 I/O 읽기/쓰기 관련 측정

while true; do mysqladmin -u [username] -p[password] extended-status grep "Innodb_" sleep 60 done 쓰기 요청의 수 (QPS) 계산: Innodb_data_writes 변수는 InnoDB에서 발생한 총 디스크 쓰기 작업의 횟수를 나타냅니다. 두 시간 포인트 사이의 Innodb_data_writes의 증가를 측정하고, 그 기간 동안의 초로 나눠서 QPS를 계산할 수 있습니다. 총 쓰기 바이트 계산: Innodb_data_written 변수는 InnoDB에 의해 디스크에 쓰여진 총 바이트를 나타냅니다. 두 시간 포인트 사이의 Innodb_data_written의 증가를 측정하여 총 쓰기 바이트를 구할 수 있습니다. QPS당 쓰기 바이..

Mysql & Maria/admin 2023.11.02

full text index

전체 텍스트 검색은 첫 글자 뿐 아니라 중간의 단어나 문장으로도 인덱스를 생성해 주기 때문에, 전체 텍스트 인덱스를 통해 순식간에 검색 결과를 얻을 수 있다. InnoDB와 MyISAM 테이블만 지원하며, char, varchar, text타입 문자만 인덱싱이 가능하다. 인덱스 기법 Stop-word parser 👈 default 옵션 → 공백이나 Tab, 문장 기호, 또는 사용자가 정의한 문자열을 기준으로 토큰을 나누는 기법 ex> 아빠가 방에 들어갔다. → 아빠가 / 방에 / 들어갔다. N-gram parser → n-gram 기법을 사용하여 할당한 토큰의 크기 n만큼씩 데이터를 인덱스로 파싱해두었다가 사용하는 기법 ex> 아빠가 방에 들어갔다. → 아빠 / 빠가 / 방에 / 들어 / 어갔 / 갔다...

Mysql & Maria/admin 2023.09.07

mysql int(10) / bigint(20) 등 괄호 안 숫자의 의미

() 는 자리수를 선언하는 것이다. (10)이면 10자리 (20)이면 20자리까지 넣겠다는 의미이다. 괄호안에 별다른 선언을 하지 않으면 default가 int(11), bigint(20)이 된다. 만약에 int(11)을 초과해서 int(20)으로 선언했을경우는 어떻게 될까 최대 10자리이고 11자리인 이유는 1자리는 음수를 표시하기 위함이다. 아래 테스트 참조 max 입력 값이 4,294,967,295 이므로 43억개 이상의 데이터가 필요하다면 int 형 대신 bigint로 선언이 필요할 듯 하다~ data type 별 입력 가능 범위

Mysql & Maria/admin 2023.07.20

Ascending index vs Descending index

Ascending index : 작은 값의 인덱스 키가 B-Tree의 왼쪽으로 정렬된 인덱스 Descending index : 큰 값의 인덱스 키가 B-Tree의 왼쪽으로 정렬된 인덱스 Forward index scan (Forward scan) : 인덱스 키의 크고 작음에 관계없이 인덱스 리프 노드의 왼쪽 페이지부터 오른쪽으로 스캔 Backward index scan (Backward scan) : 인덱스 키의 크고 작음에 관계없이 인덱스 리프 노드의 오른쪽 페이지부터 왼쪽으로 스캔 Descending index 지원 - Mysql 8.0 에서 부터 지원한다. - MariaDB 는 10.11 에서 부터 지원하는 듯? https://mariadb.com/kb/en/descending-indexes/ De..

Mysql & Maria/admin 2023.07.06