# MySQL8

10개의 포스트
post-thumbnail

[MySQL] Homebrew로 MySQL 설치하기!

소개 너무나도 쉽고 간편합니다! 하지만 아직 brew에 익숙하지 않은 분들을 위해 정리해 봅니다. MySQL 5.6, 5.7, 8 모두 설치 방법이 크게 다르지 않습니다. 수행 단계 1. brew search (필수적이지 않음) 역시. 일단 내가 찾는 게 있나, 정확한 명칭은 무어라고 되어 있을까? 궁금하면 일단 써 보는 명령입니다. 한 번 해 보죠. 그러면 아래와 같은 결과가 나옵니다. 그... 설명 안 해도 mysql과 mysql@5.6, mysql@5.7을 보시면... 감이 오시죠? 그냥 mysql이라고만 되어 있는 것은 MySQL 8을 말하는 것입니다! 2. brew install 원하는 버전의 MySQL을 설치합니다. 혹은 혹은 어이가 없을 정도로 쉽지요?

2023년 5월 13일
·
0개의 댓글
·
post-thumbnail

[ubuntu] MySQL 삭제 및 MySQL 8 도커 설치

Ubuntu MySQL 완전 삭제 MySQL 삭제 삭제 확인 MySQL 8 설치 docker-compose 파일

2023년 1월 15일
·
0개의 댓글
·

mysql 8 로 DB이전 문제

개발 프로젝트를 임시서버에 설치하여 개발하다가 서비스를 위한 서버로 이전하는 작업을 진행하였습니다. 그런데, mysql8로 이전하려고 하니 그전 변수형과, 문자셋이 맞지 않는다는 에러를 접하게 되었습니다. 그래서 뒤늦게 mysql8의 변경사항을 점검하게 되었습니다. 우선 이전 성공은했으니, 가볍게 목록을 나열하고 나중에 하나하나 무슨 의미인지 다시 추가해보도록하겠습니다. int 변경 처음 만난에러는 우선 sql dump 파일을 보면 int(11) 요렇게 선언되어 있는데, 이것을 그냥 int 로 변경합니다. 그렇게 해서 등록하면 int 가 10으로 변경되어 있는 것을 확인할 수 있습니다. 문서를 보니 그전 11과 10이 같은 것 같습니다. > ini(11) => int 문자셋 변경 mysql8 부터 문자셋(CHARACTER SET)이 utf8mb4 로 변경되고 COLLATE 는 utf8mb40900ai_ci이 기본 값으로 세팅되어 있습니다. >

2022년 5월 17일
·
0개의 댓글
·

Mysql. 쇼핑몰 1. 리뷰 테이블 인덱스

쇼핑몰DB 1. 리뷰 스키마 필요한 쿼리 속도가 중요한 쿼리 (유저용) 1.1 최신순 상품페이지 리뷰 1.2 최신순 상품페이지 리뷰 + 별점 필터링 1.3 리뷰 작성시 이미 작성했던 주문인지 확인 (exists) 중요도 낮은 쿼리 (쇼핑몰 관리자용) 2.1 특정 회원이 쓴 리뷰 목록 2.2 댓글이 없는 리뷰 목록 2.3 별점별 리뷰 목록 쿼리 1.1 최신순 상품페이지 리뷰 동일한 item_id 기준 id로 정렬되어 있어서 역순으로 20건만 읽으면 된다. 페이징 쿼리를 서브쿼리로 감싸지 않으면 2페이지부터 필요없는 행에서도 member 조인이 생긴다. 1.2 최신순 상품페이지 리뷰 + 별점 필터링 동일한 item_id, score 기준 id로 정렬되어 있어서 역순으로 20건만 읽으면 된다. 하지만 인덱스 변경시 위 1.1의 쿼리에서 동일 item_id 기준 id로 정렬되어 있지 않아서 it

2022년 3월 26일
·
0개의 댓글
·

MYSQL8. 인덱스 적용

Semi Join 조인은 아니지만 조인과 같이 사용하는 준조인 1. Table Pullout 서브쿼리를 조인으로 바꾼다. 다른 최적화도 사용할 수 있다. 전체 semijoin 플래그 외에는 비활성화 시키는 variable이 없다. 2. FirstMatch In 서브쿼리를 exists로 바꿔서 실행시켜서 각 로우에 대해 handlerreadkey 1회씩만 실행한다. 아우터쿼리에서 적절한 인덱스를 사용할 수 있을 때 사용한다. 위 쿼리에서 before 쿼리가 after처럼 실행된다. 서브쿼리에 필요한 부분만 읽기 때문에 서브쿼리(salaries)의 행이 많을수록 유리하다. 3. Materialization 임시테이블로 구체화한 후 드라이빙 또는 드리븐 테이블로 사용한다. 드리븐 테이블로 사용할 때는 자동으로 생성되는 인덱스인 distinct_key가 사용된다. 서브쿼리는 상관서브쿼리가 아니어야 한다. (독립적으로 실행할 수 있어야 한다.

2022년 3월 14일
·
0개의 댓글
·

[MySQL8] RANK, ROW_NUMBER

기획서 스펙이 너무나도 복잡해서 쿼리로 커버되지 않을것만 같았지만, 시니어 개발자 분이 요런 키워드를 알려주셨다. RANK, ROW_NUMBER 음. 나도 2년차 개발자지만 지금까지 MySQL 쿼리를 짜면서 마주해본적이 없던 키워드라 간단히 공부해보았다. 시니어개발자분은 Oracle DB 경험이 많으셔서 제안을 주셨다고 했다. 원래 MySQL에는 해당 기능을 제공하지 않았다가, 버전 8부터 제공한다고 했고, 마침 우리 DB 가 버전 8이기에 시도해볼 수 있게 되었다. 그러면 하나씩 알아가보자. 일단 공통적으로, 이들은 쿼리 결과에 대한 순번을 매기는데 사용된다. order by 된 결과대로 각 row_num을 구하고 싶을 때 사용한다. 첫번째 row를 1로 시작하여, +1씩 증가하며 결과가 도출된다. RANK() 설명 order by 를 거친 후 order by 의 결과 순서대로 값을 반환해준다. 사실 partitio

2022년 1월 24일
·
0개의 댓글
·

MYSQL8. optimizer_switch

참조 https://dev.mysql.com/doc/refman/8.0/en/select-optimization.html https://dev.mysql.com/doc/refman/8.0/en/switchable-optimizations.html 사용 현재값 확인 글로벌 적용 현재 세선 적용 쿼리단위 적용 종류 Hash Join Flags 8.0.20부터 사용되지않고 blocknestedloop 사용해야함 hash_join=on Block Nested-Loop Flags BNL Join 사용여부 8.0.20부터 bnl이 제거되어 hash join 사용여부로 사용함 blocknestedloop=on Index Merge Flags 1개 테이블에 2개 이상의 인덱스 사용 index_merge=on indexmergeunion=on 합집합

2021년 12월 12일
·
0개의 댓글
·

MYSQL8. optimizer hint

참조 https://dev.mysql.com/doc/refman/8.0/en/optimizer-hints.html 종류 Global MAXEXECUTIONTIME MAXEXECUTIONTIME(10) 최대 실행 시간 RESOURCE_GROUP SET_VAR SETVAR(optimizerswitch='index_merge=on') 시스템 변수 제어 Index INDEX, NO_INDEX INDEX(tableA idxa) USE|IGNORE INDEX 대체 GROUPINDEX, NOGROUP_INDEX USE|IGNORE INDEX FOR GROUP BY 대체 ORDERINDEX, NOORDER_INDEX USE|IGNORE INDEX FOR ORDER BY 대체 JOININDEX, NOJOIN_INDEX WHERE 절에서 사용/미사용할 인덱스 Q

2021년 12월 12일
·
0개의 댓글
·
post-thumbnail

MySQL8 비밀번호 분실 및 변경

1. MySQL 서버 멈추기 2. MySQL 서버 시작 비밀번호 없이 MySQL에 접속하기 위해서 서버 승인 생략한다. 3. root 유저로 MySQL에 접속 아래 명령문만 입력해도 비밀번호 입력 없이 시작된다. ![](https://imag

2021년 3월 3일
·
4개의 댓글
·
post-thumbnail

[당근 마켓 클론] 지역 정보와 DB 선택

ERD 링크 > https://www.erdcloud.com/d/2mDmcrHWY3CqW4Rrp 지난 글에서 작성된 구현 기능 목록을 바탕으로 데이터 모델링을 수행했다. 데이터 모델링에 대한 이야기는 특별히 할게 없지만 이런 저런 삽질하면서 발견한 정보들을 공유한다. 행정동 지역 경계, 중심 좌표 정보 유저들과 중고 물품들을 구분하기 위한 지역 정보가 필요하다. 통계청 데이터 대신 미리 변환해 놓은 것이 있어서 사용했다. > 행정동 정보 출처 : https://github.com/vuski/admdongkor > * 통계청 통계지리정보서비스에서 제공하는 행정동 경계 파일을 바탕으로 작성 > * 좌표계 EPSG:4326 기준으로 작성된 지역 경계 정보를 geojson로 제공 > * 좌표계 EPSG:4326 기준으로 작성된 지역 중심 좌표를 csv로 제공 공간 데이터를 관

2021년 1월 6일
·
0개의 댓글
·