백엔드 개발자로서 개발을 시작하려면
먼저 정해야 할 것이 프로그래밍 언어와 데이터베이스를 먼저 골라야 한다.
나 같은 경우에는 언어로서는 자바스크립트를 사용하고 있고,
데이터 베이스의 경우에는 MySQL을 사용하고 있다!
오늘은 MySQL에 대해 간단히 알아보자!
MySQL은 오픈 소스이며, 다양한 운영 체제에서 사용할 수 있는
관계형 데이터베이스 관리 시스템(RDBMS)이다.
MySQL은 높은 성능, 안정성, 확장성을 제공하여 다양한 규모의 프로젝트에 적합하다.
MySQL에서 데이터는 테이블에 저장된다. 테이블은 열(필드)과 행(레코드)으로 구성되어 있고, 각 열은 특정 데이터 유형을 가지고 있다. 테이블을 만들 때는 각 열의 속성을 정의해야 한다.
##MySQL
CREATE TABLE users (
id INT PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(100)
);
테이블을 생성하는 쿼리이다.
자세히 설명을 하자면,
테이블의 이름은 users이고,
칼럼은 id, username, email이 있는데
id는 INT 즉 intger(숫자값)라는 형테의 데이터가 저장 되는 것이고
username은 varchar(문자) 형태의 데이터가 저장되는 것인데
그 상한은 50byte이다.(숫자, 영어는 한글자에 1byte, 한글은 한글자에 2byte라고 생각하면 된다.)
형태와 크기까지 정하는 이유는
나름의 상한을 정해 그 이상의 데이터를 받지 않기 위한 규칙을 명시한다고 생각하면 된다.
그래서 한글 이름의 경우에는 보통 정말 많은 경우에는 5글자까지 있는데,
이 경우에는 varchar(10)이라고 써주면 되는것
근데 사실 너무 딱 맞출 필요는 없고 넉넉하게 그 근처 값을 정한다고 한다.
username varchar(3000)과 같은 경우만 아니면 되는 것
그래서 email varchar(100)이 되는 것
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
-- username 열에 인덱스 추가
CREATE INDEX idx_username ON users (username);
하지만 높은 확률로 내가 학원에 있는 동안 인덱스를 쓸 일은 없다.
실제로 인덱싱을 해야 할 경우는 엄청난 양의 데이터(약 10000개 이상)일 경우이기 때문
++++
인덱싱 기능을 남발을 해서는 안된다.
인덱싱을 하면 금방 찾을 수 있게끔 색인을 해두는 테이블이 한개 더 생기는데
데이터 입력시 인덱싱이된 컬럼이면 이 테이블에도 데이터가 추가되어야 하고
그때마다 그 테이블의 모든 데이터의 순서가 바뀌기 때문에
인덱싱 칼럼에 데이터 추가시 시간이 조금 더 걸리는 경향이 있기 때문이다.
++++++++
해당 기능은 실제로 웹에서 로딩이 많이 걸리는 API나 페이지가 발견되었을 때
쓰게 될 기능인데, 실제로 많은 경우는 없어서 향후 2년은 겪지 못할 확률이 높다고 한다.
만약 그런 사건이 생기는 회사에 입사하게 된다면 즐겁게 이 포스팅을 다시 참고해보면 될 것 같다.
데이터의 안전을 위해 정기적으로 백업을 진행!
필요할 때 데이터를 복원할 수 있는 방법을 꼭 숙지 해두는 편이 좋다.
## MySQL
---- 백업
mysqldump -u username -p dbname > backup.sql
---- 복원
mysql -u username -p dbname < backup.sql
++
발돋움 중인 예비 개발자 입니다.
태클 및 의견 공유 언제나 환영 :D