CODEDRAGON ㆍDevelopment/Database
인덱스의 효율적인 활용 방법
· 전체 데이터 중에서 10%~15% 이내의 데이터를 검색하는 경우에 적용하는 것이 효율적이다.
· 두 개 이상의 컬럼이 WHERE절이나 조인(join) 조건으로 자주 사용되는 경우 인덱스를 생성하는 것이 효율적이다.
· 한 테이블에 저장된 데이터 용량이 상당히 클 경우 인덱스를 활용하여 검색하는 것이 효율적이다.
· 인덱스를 통한 검색 속도의 증대를 이유로 모든 테이블에 대하여 인덱스를 생성하는 것은 비효율적이다.
https://codedragon.tistory.com/4352
인덱스 적용 기준, 인덱스 컬럼 선정, 설계시 고려사항
https://codedragon.tistory.com/4352
다중행 서브 쿼리
https://codedragon.tistory.com/4500
기존에 존재하는 테이블을 이용하여 새로운 테이블 생성
· CREATE TABLE 테이블명 AS SELECT 컬럼리스트.... FROM 원본테이블명; 구문의 형식으로 만들 수 있다.
· 원본 테이블의 인덱스는 복사하지 않는다.
· null과 not null의 제약조건만 복사되며 다른 제약조건은 복사되지 않는다.
· LONG 타입의 컬럼은 복사할 수 없다.
https://codedragon.tistory.com/4512
https://codedragon.tistory.com/4381
롤(role)
· 사용자가 데이터베이스에 접속할 수 있도록 기본적으로 미리 정의 되어 제공되는 롤이 있다.
· DBA롤은 사용자들이 소유한 데이터베이스 객체를 관리하고 사용자들을 작성하고 변경, 제거할 수 있는 권한을 보유한 롤이다.
· 사용자 롤을 정의하기 위해서는 롤을 생성하고, 생성된 롤에 권한을 부여한다.
· 특정 사용자에게 적용된 롤을 회수하기 위해서는 REVOKE ROLE 구문을 사용하고 , 롤을 삭제하기 위해서는 DROP ROLE 구문을 사용한다.
https://codedragon.tistory.com/4375
데이터베이스 권한 종류
https://codedragon.tistory.com/4375
대표적인 시스템 권한
시스템 권한 |
설명 |
CREATE USER |
새롭게 사용자를 생성하는 권한 |
DROP USER |
사용자를 삭제하는 권한 |
DROP ANY TABLE |
임의의 테이블을 삭제할 수 있는 권한 |
QUERY REWRITE |
함수 기반 인덱스를 생성하는 권한 |
BACKUP ANY TABLE |
임의의 테이블을 백업할 수 있는 권한 |
CREATE SESSION |
테이터베이스에 접속할 수 있는 권한 |
CREATE TABLE |
사용자 스키마에서 테이블을 생성할 수 있는 권한 |
CREATE VIEW |
사용자 스키마에서 뷰를 생성할 수 있는 권한 |
CREATE SEQUENCE |
사용자 스키마에서 시퀀스를 생성할 수 있는 권한 |
CREATE PROCEDURE |
사용자 스키마에서 함수를 생성할 수 있는 권한 |
RESOURCE |
· 객체를 생성, 변경, 제거 할 수 있는 권한 · DDL, DML 명령어를 사용이 가능합니다. |
CONNECT |
· 데이터베이스에 연결할 수 있는 권한 |
DBA |
· 데이터베이스 관리자 권한 |
https://codedragon.tistory.com/4312
QUERY 예시 1
employees 스키마에서 현재 부서에 해당하는 직원번호, 부서번호, 발령시작일 세 가지를 조회한 결과를 서브 쿼리의 활용하여 테이블(t_current_dept_emp)을 생성하는 SQL문장 예시입니다.
CREATE table t_current_dept_emp SELECT e.emp_no AS emp_no, d.dept_no AS dept_no, d.from_date AS from_date FROM dept_emp d, employees e WHERE d.emp_no = e.emp_no AND d.to_date > now();
|
QUERY 예시 2
다음의 보기에서 제시된 두 개의 테이블을 조인하여 이름, 부서코드, 부서명을 직원테이블의 나이순으로 출력하는 SQL문을 작성 예시입니다.
SELECT s_emp.name, s_emp.dept_id, s_dept.dept_name FROM s_dept, s_emp WHERE s_dept.dept_id = s_emp.dept_id ORDER BY s_emp.age;
|
QUERY 예시 3
사용자에게 권한을 부여하고 회수하는 명령어 예시입니다.
사용자 : sampleuser 접근 호스트 : localhost 대상 데이터베이스 : sakila 대상 테이블 : 모든 테이블 |
가. 사용자 권한 주기 - SELECT, EXCUTE 권한을 sakila 테이블에 부여 |
GRANT SELECT, EXCUTE ON sakila.* TO 'sampleuser'@'localhost' |
나. 사용자 권한 회수 가)항에 부여된 권한 중 EXCUTE 권한 회수
|
REVOKE EXCUTE ON sakila.* FROM 'sampleuser'@'localhost' |
'Development > Database' 카테고리의 다른 글
Summary - 데이터베이스 사용자 계정, QUERY 연습 (0) | 2019.10.20 |
---|---|
SUMMARY - 데이터 딕셔너리(Data Dictionary; DD), QUERY 연습 (0) | 2019.10.20 |
ER 다이어그램(ERD; E-R Diagram) (0) | 2019.10.20 |
ER 다이어그램 작성 지침 (0) | 2019.10.20 |
물리적 모델링의 주요 업무 (0) | 2019.10.17 |