티스토리 뷰

Database

MySQL Index, Join, Grant

조묵헌 2018. 5. 11. 17:18

색인 (Index)

조회할 때 원하는 행을 빠르게 찾을 수 있게 준비해둔 데이터

  • Index === key
  • 자주 조회하는 칼럼에 적용
  • 조회 시 오랜 시간이 걸리는 컬럼에 적용

인덱스의 종류

  • primary key : 테이블 내에서 중복되지 않는 유일한 키
    • where문을 사용해서 조회할 때 가장 고속으로 데이터를 가져올 수 있다.
    • 테이블 당 하나의 PK만 가진다.
  • unique key : 중복을 허용하지 않는 유일한 키
    • 고속, 여러개의 Unique key 사용 가능.
  • normal key : 중복을 허용하는 인덱스
    • 여러개의 키를 지정할 수 있다.
  • foreign key : 다른 테이블과의 관계성을 부여하는 키

결합 (JOIN)

# posts 테이블에 users 테이블을 결합해서 출력. 기준은 posts.user_id에 해당하는 users.id 행을 함께 출력
SELECT * FROM posts LEFT JOIN users ON posts.user_id = users.id;


# 대출번호 42에 대한 대출자 이름 확인
SELECT firstName, lastName FROM Patron JOIN Checkout ON (Patron.id = Checkout.patronId) WHERE Checkout.id = '42'

권한 (GRANT)

GRANT 권한 ON 데이터베이스.테이블 TO '아이디'@'호스트' IDENTIFIED BY '비밀번호'

# ID가 alice, 비밀번호가 1234인 사용자가 posts 데이터베이스에 접근가능하도록 하기
GRANT DELETE,INSERT,SELECT,UPDATE ON posts.* TO `alice`@`%` IDENTIFIED BY '1234';

# 사용자 권한 열람
SHOW GRANTS FOR alice;


# 권한 제거
REVOKE 권한 ON 데이터베이스.테이블 FROM 사용자

# 사용자 alice의 데이터베이스 users의 DELETE 권한을 제거
revoke DELETE on posts.* from alice;

# 사용자 삭제
DROP USER `alice`@`%`;

'Database' 카테고리의 다른 글

MongoDB 설치와 실행  (0) 2018.05.11
MongoDB 기초  (0) 2018.05.11
MySQL Index, Join, Grant  (0) 2018.05.11
MySQL Query CRUD  (0) 2018.05.11
MySQL 사용하기  (0) 2018.05.11
Database 기본  (0) 2018.05.11
댓글
댓글쓰기 폼