컴퓨터 공학/DB(10)
-
(Database) MySQL 8.0 서버 업그레이드 시 주의 사항
아직까지 많은 회사들이 MySQL 5.7 버전을 사용하고 있지만, 개인 개발자 혹은 새로 생긴 스타트업의 경우 8.0이상의 버전을 사용하는 일이 많다. 개인의 경우 크게 문제가 되지 않지만 회사의 경우 5.7버전에서 8.0버전으로 업그레이드를 할 때 문제가 발생할 수 있기 때문에 여기에 관해서 몇글자 적어보려한다. (이 글의 내용은 Real MySQL 8.0)을 참고했다. MySQL 서버를 업그레이드 하는 방법 mysql 서버를 업그레이드 하는 데는 두가지 방법을 생각해 볼 수 있다. MySQL 서버의 데이터 파일을 그대로 두고 업그레이드 하는 방법 mysqldump 도구 등을 이용해 MySQL 서버의 데이터를 SQL 문장이나 텍스트 파일로 덤프한 후, 새로 업그레이드 된 버전의 MySQL 서버에서 덤프..
2022.05.30 -
(Docker) Mysql(PostgreSQL, mariaDB 등)을 도커로 실행시키기
mysql과 postgresql은 각각 3306, 5432 포트를 기본으로 사용하기 때문에 겹칠일이 없지만, mysql과 mariaDB같은 경우 둘다 3306 포트로 실행되는데다, 같은 로컬환경에 출돌이 일어나기 쉽상이다. 그래서 이에 대한 해결책으로 도커에서 DB를 띄우는 법에 대해서 얘기하려 한다. 🏴 MySQL을 Docker에서 당연히 이 과정을 수행하기 위해서는 Docker가 기본적으로 설치되어 있어야겠다. 그리고 당연히 기본적인 docker 명령어들은 숙지가 되어 있어야 한다. // 로그인 되어 있지 않다면 로그인 docker login // 실행되고 있는 것은 무엇인지 확인 docker ps // 사실 docker 앱 보면 바로 알 수 있긴하다 먼저 로컬환경에 mysql 도커 이미지를..
2022.03.24 -
(Database) DML, DDL, DCL
DML(Data Maniupluation Language) DML이라는 이름을 뜯어 보면 그 뜻을 알 수 있다. Data(정보)를 Manipulation(조작) 하는 Language(언어) 이다. 정말 간단하지 않은가! 그럼 어떤게 DML일까? 어떤게 정보를 조작하는 언어일까?(사실 단어에 가깝다) 정보를 추가하는 INSERT 정보를 수정하는 UPDATE 정보를 삭제하는 DELETE 정보를 조회하는 SELECT 등이 있다. DDL(Data Definition Language) DDL도 마찬가지다. 정보를 정의(+조작)하는 언어이다. 정보를 정의한다고? 정의할게 뭐가 있을까? 우리는 DB를 사용할 때 가장 처음으로 스키마를 정의(생성)한다. 그리고 조작으로는 테이블 삭제를 하는 DROP, 테이블을 변경하는..
2022.02.20 -
(Database) 인덱스(index)가 뭐고 왜 쓸까?
1. 들어가며 🙌 수 많은 데이터가 저장되어 있는 데이터베이스를 상상해보자. 100개, 1000개, 10000개, 100000개... 그리고 여기에서 한 데이터를 찾는 select연산을 수행한다고 상상해보라. (마치 배열에서 선택정렬을 한다고 생각하는 것과 같다.) 그렇다면 데이터의 수 만큼 탐색 시간이 늘어날 것이다. 그리고 우리는 생각한다. 어떻게 하면 탐색 시간을 줄일 수 있을까? 자료구조를 배웠다면 힌트를 얻을 수 있을 것이다. 퀵정렬이 왜 빠른가? 바로 기준점이 있기 때문이다. 그렇다. 지금하려는 인덱스도 데이터베이스의 기준점에 대해서 얘기한다. 2. 인덱스가 뭘까? (왜 써?) 인덱스는 데이터베이스 테이블에 대한 검색 성능을 높여주는 자료구조이다. 그렇다. 인덱스를 사용하는 이유는 검색 성능을..
2022.02.20