본문 바로가기
반응형

MySQL9

[Real MySQL 8.0] 6장 - 데이터 압축(페이지 압축과 테이블 압축) 목차 · 디스크 데이터 파일 크기의 문제점 · 페이지 압축 · 테이블 압축 디스크 데이터 파일 크기의 문제점 MySQL 서버에서 디스크에 저장된 데이터 파일의 크기는 1. 쿼리의 처리 성능 2. 백업 및 복구 시간 3. 저장 비용과 밀접하게 연결된다. - 디스크의 데이터 파일이 크면, 쿼리를 처리하기 위해 더 많은 데이터 페이지를 InnoDB 버퍼 풀로 읽어야 할 수 있고, 새로운 페이지가 버퍼 풀로 적재되므로 더티 페이지가 더 자주 디스크로 기록된다. - 디스크의 데이터 파일이 클수록 백업 및 복구 시간이 오래 걸린다. - 디스크의 데이터 파일이 클수록 저장 공간이 많이 필요하므로 비용 문제가 발생한다. MySQL은 이러한 문제를 해결하기 위해 테이블 압축, 페이지 압축 두 가지의 데이터 압축 방법을 .. 2022. 1. 4.
[MySQL] 데이터 형식 · 데이터베이스 테이블을 만들 때는 데이터 형식을 설정해야 한다. 테이터 형식에는 크게 숫자형, 문자형, 날짜형이 있고, 세부적으로 더 나뉘기도 한다. 다양한 데이터 형식이 존재하는 이유 · 저장될 데이터의 형태가 다양하기 때문이다. 각 테이터에 맞는 데이터를 지정함으로써 효율적인 저장이 가능하다. · 예를 들어 이름을 저장하는 컬럼에 100 글자를 저장할 칸을 준비하는 것을 상당한 낭비다. 데이터 형식 정수형 · 소수점이 없는 숫자 · 사용 예: 인원 수, 가격, 수량 데이터 형식 바이트 수 숫자 범위 사용 예 TINYINT 1 -128 ~ 127 가수 그룹 SMALLINT 2 -32,768 ~ 32,767 평균 키 INT 4 약 -21억 ~ +21억 인원 수 BIGINT 8 약 -900경 ~ +900.. 2021. 11. 11.
[MySQL] AUTO_INCREMENT 값 초기화하기 MySQL에서 테이블에 AUTO_INCREMENT를 설정하면, 입력되는 데이터의 레코드 값이 1부터 시작해서 자동으로 1씩 증가한다. 예를 들어 10개의 데이터를 입력하면, 입력된 데이터 중 가장 큰 레코드의 크기는 10이 된다. 그런데 위에서 입력한 10개의 데이터를 삭제한 후, 한 개의 데이터를 입력해도 레코드는 1이 아닌 11로 설정된다. 그렇다면, 데이터 삭제 후 AUTO_INCREMENT로 생성된 레코드가 초기화되어 다시 1부터 시작할 수는 없을까? 이럴 때는 아래와 같은 명령어를 입력하면 된다. ALTER TABLE TABLE명 AUTO_INCREMENT = 시작할 값 2021. 6. 9.
[AWS] RDS_MySQL 오류 해결: Could not send query: query size is >= to max_allowed_packet 문제 일반적인 쿼리보다 좀 더 많은 요청을 하는 복잡한 쿼리를 데이터베이스에 요청할 일이 있었다. 그런데 다음과 같은 오류가 발생했다. Could not send query: query size is >= to max_allowed_packet 데이터베이스에는 허용 가능한 패킷의 크기가 정해져있다. 너무 큰 요청을 받으면, 하나의 요청을 처리하는 데 너무 많은 시간이 걸려 다른 요청들을 처리하는 데 문제가 발생하기 떄문에 이러한 기능이 필요할 것이다. 해결 MySQL에는 이러한 설정으로 max_allowed_packet이 있다. MySQL에 이 설정을 직접 조정하는 쿼리를 보내는 방법도 있지만, RDS는 간단하게 파라미터 그룹을 변경하는 방식으로 문제를 해결할 수 있다. RDS - 파라미터 그룹으로 이동.. 2021. 4. 19.
[AWS] Amazon RDS에서 이모지 데이터 사용하기 문제 서비스 운영 중 예약이 실패하는 오류가 발생했다. 서버 로그를 확인하니 이모지가 포함된 예약 메모를 데이터베이스에 저장하다가 오류가 발생한 것이다. 이모지다 😃 현재 사용하는 데이터베이스는 RDS - MySQL Aurora였고, 문자 인코딩 방식은 utf8를 사용하고 있었다. utf는 이모지 저장이 불가능한 방식이기 때문에 이모지 저장이 가능한 utf8mb4로 변경이 필요했다. UTF-8 인코딩은 4바이트 가변 길이 인코딩 방식입니다. 그런데 MySQL에서는 utf8을 3바이트로 구현했었습니다. 그러다가 MySQL 5.5.3 (2010년 3월 24일)에 4바이트짜리 character set인 utf8mb4을 추가했습니다. 유니코드 U+10000 이상인 문자들을 UTF-8로 인코딩하려면 4바이트가 필.. 2021. 4. 18.
[AWS] Amazon RDS 시작하기 및 MySQL 워크벤치 연결하기 Amazon RDS 시작하기 및 MySQL 워크벤치 연결하기 Amazon RDS는 Relational Database Services의 약자로, 클라우드에서 관계형 데이터베이스를 더욱 간편하게 설정, 운영 및 확장할 수 있는 서비스입니다. 이 글을 읽으면 Amazon RDS를 생성 및 시작하고, MySQL 워크벤치와 연결하여 데이터베이스를 조작할 수 있습니다. 먼저 AWS 홈페이지(https://aws.amazon.com/ko/)에서 RDS를 검색합니다. RDS 대쉬보드에서 `데이터베이스 생성` 버튼을 클릭합니다. 데이터베이스 생성 방식 선택 - 표준 생성을 선택하고, 엔진옵션 - MySQL 그리고 버전은 5.7.30을 선택합니다. (원하는 종류의 데이터베이스가 있다면, 해당 데이터베이스를 선택하셔도 무.. 2020. 12. 31.
반응형