MySQL 테이블 관계 및 구조 변경
테이블 간의 관계
데이터베이스 설계 시 테이블 간의 관계를 정확히 파악하는 것은 매우 중요합니다. 일반적으로 다음과 같은 세 가지 주요 관계 유형이 존재합니다.
일대다(N:1): 직원과 부서의 예시에서 여러 명의 직원이 하나의 부서에 속할 수 있습니다. 외래키는 항상 '다' 측에 위치해야 합니다.
다대다(N:M): 책과 저자의 관계처럼 한 권의 책에 여러 저자가 참 ...
6월 18일 21:06에 게시됨
MySQL에서 중복 데이터 제거하고 유일한 레코드만 남기기
대용량 테이블에서 중복된 행을 제거하고 각 그룹당 하나의 레코드만 유지하는 작업은 데이터 정제 과정에서 자주 발생하는 요구사항입니다. MySQL에서는 서브쿼리와 메인 쿼리가 동일한 테이블을 참조할 경우 제약이 있으므로, 이를 우회하는 방법이 필요합니다.
단일 필드 기준 중복 제거
예를 들어, user_id가 중복된 사용자 정보에서 가장 작은 ID를 가진 레코드만 보 ...
6월 18일 01:25에 게시됨
Nacos 서버 설정 및 주요 문제 해결 방법
문제 발생 시 아래 해결책 참고
com.alibaba.nacos.api.exception.NacosException: Client not connected, current status: STARTING
at com.alibaba.nacos.common.remote.client.RpcClient.request(RpcClient.java:639) ~[nacos-client-2.2.0.jar:na]
최근 마이크로서비스 프로젝트를 공부하며, 친구들과 함께 사용할 수 있도록 서버에 Nacos를 배포해보기로 했습니 ...
6월 17일 22:46에 게시됨
MySQL COUNT 최적화: 다양한 COUNT 문법의 성능 분석
MySQL에서 레코드 수를 집계할 때 사용하는 COUNT 함수는 여러 형태로 작성할 수 있습니다. COUNT(*), COUNT(1), COUNT(pk_column), COUNT(column) 등의 차이점과 성능 특성을 InnoDB 스토리지 엔진 관점에서 분석합니다.
COUNT 함수의 동작 원리
COUNT()는 집계 함수로, 지정한 표현식이 NULL이 아닌 레코드의 수를 반환합니다. 이 원리를 이해하면 각 문법의 차이를 명 ...
6월 17일 18:56에 게시됨
Mac에서 PHP 개발 환경 구성: Apache + PHP + MySQL
Mac에서 PHP 개발 환경 설정하기
Mac 시스템에는Apache, PHP, MySQL을 쉽게 구성할 수 있습니다. 이제 차근차근 설정해보겠습니다.
1. Apache 시작하기
Apache를 시작하는 방법은 두 가지가 있습니다.
방법 1: 네트워크 공유 설정
"시스템 환경설정" → "공유"로 이동하여 "인터넷 공유" 옵션을 활성화합니다.
방법 2: 터미널에서 명령어 실행
sudo apachectl start
...
6월 17일 05:37에 게시됨
데이터베이스 마이그레이션 실무 가이드: 무중단 전환을 위한 전략과 구현
데이터베이스 마이그레이션의 필요성
데이터베이스 마이그레이션은 단순히 데이터를 옮기는 작업을 넘어, 서비스의 안정성과 확장성을 확보하기 위한 핵심적인 과정입니다. 흔히 이사에 비유되곤 하는 이 작업은 다음과 같은 기술적 요구 사항으로 인해 발생합니다.
인프라 확장성 확보: 데이터 유입량이 급증하여 현재 스토리지나 컴퓨팅 자원으로는 감 ...
6월 16일 23:41에 게시됨
CentOS 7에 MySQL 5.6 설치 및 초기 설정 가이드
MySQL 5.6 소스 코드 패키지 다운로드
mkdir /mysql_install
cd /mysql_install
wget https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-5.6.49-1.el7.x86_64.rpm-bundle.tar
지정된 폴더(mysql_rpm)에 압축 해제
root@centos7-mysql:/mysql_install#mkdir mysql_rpm
root@centos7-mysql:/mysql_install#tar -xf MySQL-5.6.49-1.el7.x86_64.rpm-bundle.tar -C ./mysq ...
6월 16일 22:09에 게시됨
우분투 18.04에서 MySQL 버전 업그레이드: 안전한 전환 및 설정 마이그레이션 가이드
우분투 18.04에서 MySQL 버전 업그레이드: 안전한 전환 및 설정 마이그레이션 가이드
1. 사전 준비
데이터베이스 백업 (필수 단계): ```
mysqldump -u admin -p --all-databases > complete_backup.sql
- **현재 설정 기록**: ```
cp /etc/mysql/mysql.conf.d/custom.cnf config_backup.cnf
호환성 확인:
애플리케이션이 대상 버전(예: MySQL 8.0)을 지원하는지 확 ...
6월 16일 19:56에 게시됨
MySQL 트리 구조 데이터의 하위 항목 조회 함수 및 저장 프로시저
특정 노드의 모든 후손 항목 조회 (자정 함수 사용)
기본 테이블 sys_center에서 centerid는 고유 식별자, parentcentid는 부모 항목을 가리키는 필드입니다. 예를 들어 입력값으로 1을 주면, 그 하위에 위치한 2, 3, 4, 5, 6와 같은 모든 자식 항목을 반환합니다.
DROP FUNCTION IF EXISTS getDescendantCenters;
DELIMITER $$
CREATE FUNCTION getDescendantCenters(n ...
6월 16일 02:17에 게시됨
CentOS 7에 MySQL 수동 설치 가이드
1. MySQL Yum Repository 다운로드 및 설치
CentOS 7에는 기본적으로 MariaDB가 포함되어 있지만, MySQL을 직접 설치하면 자동으로 대체됩니다. 먼저 MySQL 공식 Yum Repository 패키지를 다운로드합니다.
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
다운로드가 완료되면 Yum을 이용해 Repository를 설치합니 ...
6월 15일 20:08에 게시됨