반응형

mysql 5

MySQL 8.0 'Access denied' 오류 해결법 — 인증 방식 변경 [우분투,mySQL8.0]

MySQL 8.0 'Access denied' 오류 해결법 — 인증 방식 변경(auth_socket → mysql_native_password)Spring Boot, MyBatis, DBeaver, 또는 JDBC로 MySQL 8.0에 연결하려고 할 때 다음과 같은 오류를 본 적 있나요?java.sql.SQLException: Access denied for user 'root'@'localhost'처음에는 비밀번호가 틀렸다고 생각할 수 있지만, MySQL 8.0부터 기본 인증 방식이 바뀌었기 때문에 발생하는 문제입니다. 문제 상황MySQL 8.0 이상 버전에서는 기본 사용자 인증 방식이 바뀌었습니다. 특히 우분투에서 apt로 설치하면, root 계정은 기본적으로 auth_socket 방식이 됩니다.이 방..

DB 2025.04.02

[MySQL] EXPLAIN 실행 계획 항목 정리

EXPLAIN 실행 계획 항목 정리표항목의미주요 값설명id실행 단계숫자 (1, 2, 3...)JOIN이 포함된 쿼리에서 실행 순서를 나타냄. 작은 숫자가 먼저 실행됨.select_type쿼리 유형SIMPLE, PRIMARY, SUBQUERY, DERIVED, UNION 등쿼리의 구조(기본, 서브쿼리, 유니온 등)를 나타냄.table참조하는 테이블테이블명현재 실행 계획에서 사용되는 테이블 이름을 나타냄.partitions사용된 파티션파티션명 또는 NULL테이블이 파티셔닝되어 있을 경우, 사용된 파티션을 표시함.type조회 방식 (성능 중요!)ALL, index, range, ref, eq_ref, const, system 등테이블을 검색하는 방식. ALL은 풀 테이블 스캔(느림), const는 즉시 검색(..

DB 2025.03.21

[DB MySQL] 옵티마이저(Optimizer)란? INDEX EXPLAIN 실행

옵티마이저(Optimizer)는 SQL 쿼리를 실행할 때 가장 효율적인 실행 계획을 선택하는 MySQL의 내부 엔진입니다.즉, MySQL이 쿼리를 실행할 때 "어떤 인덱스를 사용할지", "어떤 방식으로 데이터를 검색할지" 등을 결정하는 역할을 합니다.쉽게 말해, 옵티마이저는 쿼리 성능을 최적화해주는 엔진입니다.EXPLAIN 실행 시 type이 ALL로 나오는 경우EXPLAIN SELECT * FROM users WHERE age > 30;   - type = ALL이란?"풀 테이블 스캔(Full Table Scan)"이 발생한 상태입니다.즉, MySQL이 테이블의 모든 행을 검사하면서 age > 30 조건을 만족하는 데이터를 찾고 있습니다.인덱스를 사용하지 않기 때문에 성능이 매우 비효율적입니다.- "A..

DB 2025.03.20

복합 인덱스(Composite Index)와 B-Tree 원리 분석 - 1억 개 이상의 데이터 빠르게 조회하기

데이터가 많을 때, 조회 성능이 느려지는 이유SQL을 실행했을 때, 데이터를 빠르게 조회하려면 인덱스를 잘 활용해야 합니다.하지만 많은 사람들이 단순 인덱스만 생성하고, **복합 인덱스(Composite Index)**를 활용하지 않아서 쿼리 속도가 최적화되지 않는 경우가 많습니다.오늘은 복합 인덱스가 왜 중요한지, 그리고 B-Tree 구조가 어떻게 작동하는지를 깊이 있게 다뤄보겠습니다.실제 1억 개 이상의 데이터를 다룰 때 어떻게 최적화할 수 있는지 살펴볼까요?      복합 인덱스란? 단일 인덱스(Single Index) vs 복합 인덱스(Composite Index)1.  단일 인덱스(Single Index)단일 인덱스는 한 개의 컬럼에만 인덱스를 생성하는 방식입니다.CREATE INDEX idx_..

DB 2025.03.18

[IntelliJ] No data sources are configured to run this SQL and provide advanced code assistance. (MyBatis 인텔리제이 인식)

IntelliJ에서 MyBatis같은 SQL mapper 기반의 framework를 사용할때 SQL mapper xml 파일에서 'No data source are configured to run this SQL and provide advanced code assistance.' 이나 'SQL dialect is not configured.' 라는 warning이 검출될 수 있다. Warning(경고) 이므로 무시해도 개발하고 실행하는데 문제는 없다.하지만 IntelliJ에 SQL dialect와 data source를 설정해주면 해당 database에 대한 코드 검증, SQL 문법 검사와 자동 완성 등의 기능이 지원된다. 별도 설정 없이 경고만 끄는 방법부터 SQL dialect, data sourc..

Spring 2024.06.04
반응형