데이터 베이스 MySQL

hoifoi·2023년 10월 26일
0


백엔드 개발자로서 개발을 시작하려면
먼저 정해야 할 것이 프로그래밍 언어와 데이터베이스를 먼저 골라야 한다.
나 같은 경우에는 언어로서는 자바스크립트를 사용하고 있고,
데이터 베이스의 경우에는 MySQL을 사용하고 있다!

오늘은 MySQL에 대해 간단히 알아보자!

MySQL이란?

MySQL은 오픈 소스이며, 다양한 운영 체제에서 사용할 수 있는
관계형 데이터베이스 관리 시스템(RDBMS)이다.
MySQL은 높은 성능, 안정성, 확장성을 제공하여 다양한 규모의 프로젝트에 적합하다.

MySQL 데이터베이스 기본 개념

1. 테이블

MySQL에서 데이터는 테이블에 저장된다. 테이블은 열(필드)과 행(레코드)으로 구성되어 있고, 각 열은 특정 데이터 유형을 가지고 있다. 테이블을 만들 때는 각 열의 속성을 정의해야 한다.

##MySQL
    CREATE TABLE users (
        id INT PRIMARY KEY,
        username VARCHAR(50),
        email VARCHAR(100)
    );
    
    테이블을 생성하는 쿼리이다.
    자세히 설명을 하자면,
    테이블의 이름은 users이고,
    칼럼은 id, username, email이 있는데
    id는 INTintger(숫자값)라는 형테의 데이터가 저장 되는 것이고
    username은 varchar(문자) 형태의 데이터가 저장되는 것인데
    그 상한은 50byte이다.(숫자, 영어는 한글자에 1byte, 한글은 한글자에 2byte라고 생각하면 된다.)
    형태와 크기까지 정하는 이유는
    나름의 상한을 정해 그 이상의 데이터를 받지 않기 위한 규칙을 명시한다고 생각하면 된다.
    그래서 한글 이름의 경우에는 보통 정말 많은 경우에는 5글자까지 있는데,
    이 경우에는 varchar(10)이라고 써주면 되는것
    근데 사실 너무 딱 맞출 필요는 없고 넉넉하게 그 근처 값을 정한다고 한다.
    username varchar(3000)과 같은 경우만 아니면 되는 것
    그래서 email varchar(100)이 되는 것

2. 쿼리 언어

MySQL에서 데이터를 조작하려면 SQL(Structured Query Language)을 사용해야 한다.
간단하게 SELECT, INSERT, UPDATE, DELETE 쿼리를 사용하여 데이터를 다룰 수 있다.

    ## MySQL
    -- 사용자 추가
    INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');
    
    -- 사용자 조회
    SELECT * FROM users WHERE username = 'john_doe';

MySQL 활용 팁

1. 인덱스 사용

인덱스는 데이터베이스의 검색 성능을 향상시키는 데 도움이 된다.
자주 검색되는 열에 인덱스를 추가하여 쿼리 성능을 최적화할 수 있습니다.

## MySQL
-- username 열에 인덱스 추가
CREATE INDEX idx_username ON users (username);

하지만 높은 확률로 내가 학원에 있는 동안 인덱스를 쓸 일은 없다.
실제로 인덱싱을 해야 할 경우는 엄청난 양의 데이터(10000개 이상)일 경우이기 때문

++++
인덱싱 기능을 남발을 해서는 안된다.
인덱싱을 하면 금방 찾을 수 있게끔 색인을 해두는 테이블이 한개 더 생기는데
데이터 입력시 인덱싱이된 컬럼이면 이 테이블에도 데이터가 추가되어야 하고
그때마다 그 테이블의 모든 데이터의 순서가 바뀌기 때문에
인덱싱 칼럼에 데이터 추가시 시간이 조금 더 걸리는 경향이 있기 때문이다.

++++++++
해당 기능은 실제로 웹에서 로딩이 많이 걸리는 API나 페이지가 발견되었을 때
쓰게 될 기능인데, 실제로 많은 경우는 없어서 향후 2년은 겪지 못할 확률이 높다고 한다.
만약 그런 사건이 생기는 회사에 입사하게 된다면 즐겁게 이 포스팅을 다시 참고해보면 될 것 같다.

2. 백업과 복원

데이터의 안전을 위해 정기적으로 백업을 진행!
필요할 때 데이터를 복원할 수 있는 방법을 꼭 숙지 해두는 편이 좋다.

    ## MySQL
    ---- 백업
    mysqldump -u username -p dbname > backup.sql
    
    ---- 복원
    mysql -u username -p dbname < backup.sql

++
발돋움 중인 예비 개발자 입니다.
태클 및 의견 공유 언제나 환영 :D

profile
컨텐츠 기획자 출신 백엔드 개발자 :D

0개의 댓글

관련 채용 정보