SQL 11

MYSQL_ 트랜잭션 격리수준(isolation level)

격리수준이란?격리수준은 여러 트랜잭션이 동시에 처리 될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용하지 말지를 결졍하는것이다.격리수준은 크게 4 가지로 아래로 갈 수록 격리수준이 더욱 높아 진다.read uncommittedread committedrepeatable readserializable실무에서는 첫번째인 read uncommited는 많이 사용되지 않고, 최고 격리수준인 serializable또한 잘 사용되지 않는다. 오라클같은 DBMS에서는 주로 read committed  수준을 많이 허용하며, mysql 에서는 repeatable read를 주로 사용한다.   1. read uncommited read unc..

SQL 2023.10.20

MySQL_ InnoDB 버퍼 풀

InnoDB는 mysql 내에서 스토리지 엔진에 속하며 그 중 버퍼 풀은 가장 핵심적인 부분이다.디스크의 데이터 파일이나 인덱스 정보를 메모리에 캐시해 두는 공간으로, 이를 활용하면 쿼리 속도를 단축시킬 수 있다. 버퍼풀의 크기 설정 일반적으로 전체 물리 메모리의 80%  정도를 InnoDB의 버퍼 풀로 설정하라는 내용이 있는데 사실 그렇게 단순하게 설정해서는 안된다. 다행히 Mysql 5.7 버전부터는 InnoDB 버퍼 풀의 크기를 동적으로 조절할 수 있게 되었다. 가능하면 버퍼풀의 크기를 적절한 작은 값으로 설정해서 조금씩 상황을 봐 가면서 증가시키는 방법이 가장 나을것 같다.  권장사항운영체제의 전체 메모리 공간이 8GB 미만 이라면 50% 정도만 InnoDB 버퍼풀로 ..

SQL 2023.10.18

MYSQL_ Thread, 쿼리 실행 구조

Mysql Thread 구조 Mysql 서버는 Mysql 엔진과 스토리지 엔진으로 스레드 기반으로 동작한다. 크게 Foreground thread 와 background thread로 구분된다. Foreground thread - 사용자 요청을 처리하며, 접솓된 클라이언트 수 만큼 존재 한다. - connection이 종료되면 Thread cache로 돌아가며, 일정 수의 Tread cache가 있을 경우 종료 시킨다. - MyISAM의 경우 디스크 쓰기 작업도 여기서 진행한다. Background thead - InnoDB 버퍼 풀의 데이터를 디스크에 기록 - 데이터를 버포로 읽어오고 잠금, 데드락을 모니터링 한다. - 로그를 디스크로 기록한다. 쿼리 실행 구조 다음은 쿼리의 실행 구조를 간단하게 표현..

SQL 2023.10.18

MySQL_PRIVILEGES , Role

Mysql 의 보안을 위해서라도 사용자마다 최소한의 권한을 부여하는것은 중요하다. 이에 권한을 부여하는 해보도록 하자. 우선 간단한데 test 라는 유저를 만들겠다. create user 'test'@'%' identified by 'password' ; 테이블 권한부여 데이터베이스나 칼럼에 대해서는 select, insert, update, delete 을 부여 할 수 있다. # select , insert , update , delete 권한을 모든 데이터베이스와 테이블에 부여 GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'TEST'@'%' ; # select 권한만 employee 데이터베이스의 모든 테이블에 부여 GRNAT SELECT ON employee.* T..

SQL 2023.10.17

MYSQL_ 사용자 생성 설정

mysql을 사용하고, DBA나 회사 내 DB을 관리 하게 되면 유저를 나누고 이에 따른 적절한 권한을 부여 해야 한다. aws도 마찬가지지만 사용자의 특성에 맞게 최소한의 권한을 부여하는것이 가장 중요하기 때문이다. 시스템 계정과 일반 계정 mysql 에서는 크게 시스템계정과 일반계정이 있다. 시스템 계정은 다음과 같은 업무를 수행할 수 있다. 계정관리(계정 생성 및 삭제, 그리고 계정의 권한 부여 및 제거) 다른세션이나 실행중인 쿼리 강제 종료 Mysql은 다음 3가지 계정은 내부적으로 자동으로 생성되며, 처음부터 account_lock이 걸려 있다. mysql.sys'@'localhost : mysql 8.0부터 기본으로 내장된 sys 스키마나 객체들을 definer로 사용되는 계정 mysql.se..

SQL 2023.10.17

WINDOW FUCTION (MySQL)

SQL에는 Window function이 존재한다. Window Fuction 행과 행 사이의 관계를 표현해준다. 테이블의 특정 조건의 집계 , 순위 등을 쉽게 표현해준다. 1. 기본 문법 Select 윈도우함수 over (partition by 칼럼 order by 칼럼 윈도잉절) from 테이블명 Partition by 그룹핑 기준 Order by 순위 지정 기준 윈도잉절 : 함수의 대상이되는 행 범위 지점 Unbounded preceding - 이전행 Unbounded following- 다음행 1-(1) 집계함수 AVG ,COUNT,SUM,MAX, MIN 등 가능합니다. SUM 예시를 한번 들어보도록 하겠습니다. 테이블은 Mysql 기본 데이터인 sakila 중 payment를 사용하도록 하겠습니..

SQL 2023.08.29