1) 프라이머리 키에 의한 클러스터링 InnoDB엔진의 모든 테이블은 프라이머리 키값 순서대로 디스크에 저장되며, 모든 세컨더리의 인덱스는 레코드의 주소 대신 프라이머리 키의 값을 논리적 주소로 사용한다. 프라이머리 키가 클러스터링 인덱스이기 때문에 해당 키를 이용한 레인지스캔은 상당히 빠르다. 또한 쿼리 실행계획에서 프라이머리키가 다른 보조 인덱스보다 선택될 확률이 높다. MyISAM엔진에서는 클러스터링 키를 지원하지 않아서 프라이머리 키와 세컨더리 인덱스와의 구조적 차이가 없다. 단지 유니크키를 가진 세컨더리 인덱스일 뿐이다. 2) 외래키 지원 MyISAM이나 MEMORY 엔진은 외래 키를 지원하지 않는다. InnoDB에서 외래 키는 부모 테이블과 자식테이블 모두 해당 컬럼에 인덱스 생성이 필요하고 ..
SELECT thread_id, name, type, processlist_user, processlist_host FROM performance_schema.threads ORDER BY type, thread_id; 1) MySQL 엔진 아키텍처 MySQL은 C API, JDBC, ODBC, .NET 표준 드라이버를 제공하며 각종 언어를 지원한다. MySQL 서버는 크게 MySQL 엔진과 스토리지 엔진으로 구분할 수 있다. ● MySQL 엔진 클라이언트로부터 접속 및 쿼리요청을 처리하는 커넥션 핸들러와 SQL파서 및 전처리기, 쿼리의 최적화된 실행을 위한 옵티마이저가 주로 이룬다. MySQL은 표준 SQL 문법 (ANSI SQL)을 지원하기 때문에 타 DBMS와 호환된다. ● 스토리지 엔진 MySQL..
1. 사용자 식별 MySQL의 사용자는 사용자의 접속지점 (클라이언트가 실행된 호스트명 혹은 도메인 또는 IP 주소)이 계정의 일부가 된다. 'cdt'@'127.0.0.1' 이면 서버와 같은 IP에서 cdt라는 아이디로 접속할 수 있다는 것을 의미한다. 만약 모든 IP를 접속 허용 가능하게 하고 싶다면 'cdt'@'%' 로 진행하면 된다. 만약 'cdt'@'%'와 'cdt'@'192.168.0.1' 이있다면 우선 순위는 조금 더 명확한 주소를 가진 'cdt'@'192.168.0.1'로 접속을 시도하므로 유의하여야 한다. 2. 사용자 계정 관리 1) 시스템 계정과 일반 계정 MySQL은 SYSTEM_USER 권한 여부에 따라서 시스템 계정과 일반 계정을 구분한다. 일반적으로 시스템 계정은 데이터베이스 서버..
MySQL :: Download MySQL Installer 에서 용량이 큰 msi 파일을 다운을 받는다. 설치 파일을 실행 후 Custom을 선택하여 My SQL Server MySql Shell MySQL Router를 설치하자. 이후 설정들은 책에 나와있는데로 설정하고 설치하였다. windows에서는 cmd에서 MySql명령어를 치려면 환경변수를 등록을 해주어야한다. 내 PC 우클릭 -> 속성 -> 고급 시스템 설정 -> 환경 변수 -> 시스템 변수의 Path 수정 C:\Program Files\MySQL\MySQL Server 8.0\bin (사용자마다 다를 수 있음) 등록 하면 끝난다. 1) 초기화 책에서 첫부분에 알려주는 초기화를 진행한다. ##linux mysqld --defaults-fil..