데이터 베이스 Database(DB) #6

이온·2023년 6월 24일
0

데이터베이스

목록 보기
6/7

MySQL 설치 (맥)

brew install mysql 명령어를 이용해 MySQL 설치
mysql.server start 명령어를 이용해 서버 실행
mysql –u root 명령어를 이용해 서버 접속
\q 명령어를 이용해 서버 접속 종료
mysql.server stop 명령어를 이용해 서버 종료

1. 데이터베이스 생성

테이블을 담을 데이터베이스를 생성

CREATE DATABASE 데이터베이스명;

생성한 데이터베이스 확인

SHOW DATABASES;

데이터베이스 사용

USE 데이터베이스명;
해당 명령어 이후에 정의한 데이터베이스에서 테이블을 정의하거나 데이터를 조작할 수 있음

데이터베이스 삭제

DROP DATABASE 데이터베이스명;

2. DCL

데이터 제어어 (Data Control Language)

: 데이터베이스에 접근하는 권한을 관리하는 등의 데이터 제어

• GRANT: 데이터베이스 권한 부여
• REVOKE: 데이터베이스 권한 회수

아래 명령어는 TCL이라고 분류하기도 함
• COMMIT: 트랜잭션 작업을 반영하여 저장
• ROLLBACK: 트랜잭션 작업을 취소하여 이전 상태로 돌림

사용자 생성

CREATE USER 유저이름@localhost IDENTIFIED BY ‘비밀번호’;
localhost는 로컬로 접속한 호스트를 허용하는 것이고 외부 접속도 허용하는 경우 ‘%’를 사용

권한 부여

사용자 권한 부여: GRANT ALL PRIVILEGES ON 데이터베이스명.테이블명 TO 유저이름@localhost;
ALL은 모든 권한을 부여한다는 의미로 SELECT, INSERT, DELETE 등 권한도 여러가지가 있음

설정 권한 적용: FLUSH PRIVILEGES;

권한 확인

SHOW GRANTS FOR 유저이름@localhost;

권한 제거

REVOKE ALL ON 데이터베이스명.테이블명 FROM 유저이름@localhost;

3. 인덱스

인덱스 (Index)

: 데이터베이스 테이블의 검색 속도를 향상 시키기 위한 자료구조

데이터를 검색할 때는 테이블에서 모든 데이터를 하나씩 접근하여 데이터를 확인
인덱스는 색인과 같은 역할로 인덱스가 있다면 원하는 데이터를 쉽게 찾아갈 수 있음

인덱스를 쓰는 것이 무조건 좋은가?

모든 데이터를 조회한다면 인덱스가 불필요함
SELECT * FROM shared_kickboard;
따라서 테이블 쿼리의 사용 계획에 맞게 인덱스를 사용해야 함

인덱스의 장단점

일반적으로 인덱스를 사용하면 테이블을 조회하는 속도와 성능이 올라가지만, 아래와 같은 단점이 있음
• 인덱스를 관리하기 위한 추가 작업이 필요
•인덱스를 저장할 추가 저장 공간 필요
• 경우에 따라 검색 성능이 저하될 수 있음

인덱스를 사용하면 좋은 경우

• 규모가 큰 테이블
• 데이터의 삽입, 수정, 삭제 작업이 많지 않은 컬럼
• WHERE 조건절이나 ORDER BY(정렬), JOIN을 자주 하는 컬럼
• 데이터의 중복도가 낮은 컬럼

인덱스 추가

CREATE INDEX 인덱스명 ON 테이블명 (컬럼1, 컬럼2, ...);

인덱스 확인

SHOW INDEX FROM 테이블명;

인덱스 삭제

ALTER TABLE 테이블명 DROP INDEX 인덱스명;

profile
👩🏻‍💻

0개의 댓글