본문 바로가기

반응형

database/mariadb

(5)
mariadb 통계 정보 데이터베이스에서 두뇌의 역할을 담당하는 옵티마이저는 비용 기반 최적화 방법(CBO) 으로 SQL 수행계획을 작성한다. * 예전엔 통계 정보를 생성하는 연산에 필요한 리소스가 부족하여 규칙 기반 최적화 방법(RBO)을 사용했었다. 비용 기반 최적화에서 중요한것은 통계 정보이다. db는 빠른 SQL 수행을 위해 통계 정보를 작성하게 되는데, 이 통계정보에 따라 필요한 레코드만 가져올 수 있도록 인덱스 레인지 스캔을 할 수도 있고 처음부터 끝까지 읽는 풀스캔을 수행할 수도 있다. 때문에 통계 정보가 잘못 되었다면 1초면 수행 가능한 쿼리문도 10분이 걸릴 수 있다. 통계 정보의 수집 조건 테이블 생성 테이블의 레코드가 대량으로 변경 되는 경우 (INSERT, UPDATE, DELETE) SHOW TABLE S..
mariadb 쿼리 실행 -mairadb 에서쿼리가 실행되는 과정 1. SQL 파싱 2. 실행계획 수립 3. SQL 실행 SQL 파싱 SQL 문을실행시키면 우선 SQL 파서 모듈이 처리를 한다. 이때 SQL 문법을 검색하며 문법이 잘못되었다면 이 단계에서 수행이 멈추게 된다. 또한 이 단계에서는 SQL파스트리 가 만들어진다. * SQL 파스트리 : 문장을 의미있는 단위로 쪼개어 만들어진 SQL 구조 실행계획 수립 앞의 단계에서 만들어진 SQL 파스트리를 참조 하면서 실행계획을 수립하게된다. 실행계획 수립에는 다음과 같은 내용이 진행된다. 조건 및 연산의 단순화 SQL에 사용된 조건과 인덱스 통계 정보를 이용해 사용할 인덱스 선택 조인이 있는 경우 어떤 순서로 테이블을 읽을지 선택 이외에도 많은 작업들이 수행되지만 주요작업은 위의..
mariadb 권한 role mariadb 의 권한은 role (역할)로 부여 하고 사용자들을 해당 role 에 소속시켜서 권한을 부여할 수 있다 role 을 사용하면 사용자 하나하나 권한을 부여할 필요 없이 role 의 소속을 변경하여 권한 관리가 가능하다. 1. role 생성 (create user 권한을 가진 사용자만 가능) >create role role1 with admin {current_user | current_role | user | role}; create role [role 명] [role 권한 부여 여부] role 명까지만 입력해서 role 은 생성이 가능하다. role 명까지만 입력하면 current_user 로 생성이 된다. with admin 은 해당 role 을 관리할 수 있는 범위를 나타낸다. 현재 사..
mariadb 의 사용자 계정 식별 과 권한 1. 사용자 계정 식별 mariadb의 사용자는 다른 dbms와 다르게 사용자의 계정뿐만 아니라 그 사용자의 접속 지점도 계정의 일부가 된다.(호스트명 혹은 ip) 예를 들어 'user1'@'192.168.0.100' 이라는 계정은 192.168.0.100 ip 를 사용하는 호스트에서만 접속이 가능하다. 간혹 'user1'@'%', 'user1'@'192.168.0.100' 처럼 같은 호스트 지점이 두가지인 경우가 있는데 이런 경우 더 좁은 범위의 계정명이 적용된다. 2.권한 grant 명령을 사용하여 권한을 부여할 수 있다. >GRANT privilege_list ON db.TABLE to 'user'@'host'; GRANT 권한 ON 대상 오프젝트 to 사용자; -오브젝트 종류 *.* : maria..
MariaDB 서버의 시작, 종료, 접속 1. 서비스로 등록 되어 있는 경우 (RPM, YUM 으로 설치할 경우 자동으로 서비스에 등록된다) // 시작 #service mysql start // 종료 #service mysql stop * os 버전에 따라 service 가 아닌 systemctl 을 사용해야할 수 있음 * mariadb 인데 실제 서비스 명은 mysql 인 이유는 mariadb 가 mysql 의 커뮤니티 버전의 clone 으로 만들어 졌고, mysql 과 mariadb 를 만든 Monty 는 mysql 의 오픈소스 버전이 그대로 유지되기를 원하기 때문에 mysql 과 그대로 호환되도록 mysql 을 그대로 서비스 명으로 사용한다. 2. 서비스로 등록되어 있지 않은 경우 (직접 컴파일을 하거나 바이너리 혹은 압축된 설치 파일로 ..

반응형