전체 글 1383

MySQL/MariaDB Cluster Index

MySQL/MariaDB Cluster Index · Version : MySQL / MariaDB 인덱스에서 클러스터링은 값이 비슷한 것을 묶어서 저장하는 형태로 구현된다. 이 방법은 주로 비슷한 값들을 동시에 조회하는 경우가 많다는 점에 착안한 것이다. MySQL에서는 InnoDB 스토리지엔진에서 클러스터링 인덱스를 지원한다. (인덱스는 MySQL엔진이 아닌 스토리지 엔진이 담당한다) 클러스터링 인덱스(키 클러스터)는 테이블의Primary key(이하 PK로 표시)에 대해서만 적용되는 내용이다. 즉 PK 값이 비슷한 레코드끼리 묶어서 저장하는 것을 클러스터링 인덱스라고 표현한다. 중요한 포인트는 PK 값에 따라 레코드의 저장 위치가 변경되는데 이 뜻한 해당 레코드의 물리적인 저장 위치가 바뀌어야 한다..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB 테이블의 Row count 구하기

MySQL/MariaDB 테이블의 Row count 구하기 · Version : MySQL 5.6 MySQL / MariaDB 에서 테이블의 Row count를 구하는 방법에 대해서 알아본다. 기본적으로 단일 테이블에 대한 Row count는 아래 스크립트로 간단히 확인할 수 있다. SELECT COUNT(*) FROM table_name; 특정 데이터베이스에 대해 모든 테이블의 Row count를 구하는 경우 아래 스크립트를 사용할 수 있다. 조회하려는 데이터베이스의 테이블 정보를 참조하여 Row count 스크립트르 생성하여 호출하는 방식이다. SELECT CONCAT(GROUP_CONCAT(CONCAT('SELECT \'',table_name,'\' table_name, COUNT(*) rows F..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB InnoDB Storage Engine (Data Page)

MySQL/MariaDB InnoDB Storage Engine (Data Page) · Version : MySQL 5.5, 5.6, 5.7 MySQL / MariaDB 에서 사용하는 InnoDB 스토리지 엔진은 레코드 기반의 잠금을 제공하기 때문에 높은 동시성 처리가 가능하고 안정적이며 성능이 뛰어나다. InnoDB의 구조는 크게 메모리 영역과 CPU 연산 영역, 디스크 스토리지 영역으로 구분할 수 있다. 메모리 영역에는 버퍼풀과 로그 버퍼가 있으며 CPU 연산에는 인서트 버퍼 머지 스레드, Write 스레드, 로그 스레드, 그외 기타 스레드가 있다. 디스크 영역에는 시스템 테이블 스페이스와 사용자 테이블 스페이스, 리두로그가 존재한다. · MySQL/MariaDB InnoDB 스토리지 엔진 특성 :..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB 데이터를 CSV로 내보내기

MySQL/MariaDB 데이터를 CSV로 내보내기 · Version : MySQL 5.7 MySQL / MariaDB에 저장되어 있는 데이터를 CSV 파일로 저장하는 방법에 대해서 알아본다. - 파일로 저장되어 있는 데이터를 MySQL/MariaDB테이블로 Bulk Insert 하기 : http://sqlmvp.kr/220574644101 실습에 사용할 데이터베이스 및 테이블을 생성하고 데이터를 입력 한다. create database sw_test use sw_test; create table tbl_a (name varchar(10)) insert into tbl_a values ('sqlmvp1'); insert into tbl_a values ('sqlmvp1'); insert into tbl_..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB Table Update Safe 모드

MySQL/MariaDB Table Update Safe 모드 · Version : MySQL 5.7 MySQL / MariaDB 에서 테이블에 safe update 모드가 설정되어 있는 경우 update 또는 delete 작업 시 key 컬럼에 대한 where 조건이 없으면 아래와 같은 오류가 반환되며, 업데이트를 할 수 없다. Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. safe upd..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB max_connection 개수와 성능

MySQL/MariaDB max_connection 개수와 성능 · Version : MySQL 5.7 MySQL / MariaDB 에서 mysqld 서버에 연결하려고 할때, Too many connections 오류가 발생하면 사용 가능한 모든 연결이 다른 클라이언트에 의해 사용중임을 의미한다. 만약Too many connections 와 같은 커넥션 오류가 발생한다면 시스템 변수를 수정하여 커넥션 개수를 늘릴 수 있다. 아래 스크립트로 즉시 늘릴 수 있다. set global max_connections = 200; 현재 연결되어 있는 연결수는 아래 스크립트로 확인 할 수 있다. show status like 'threads_connected'; max_connections 값에 대한 고정된 규칙은 ..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB 사용자 생성

MySQL/MariaDB 사용자 생성 · Version : MySQL 5.6 MySQL / MariaDB 에서 데이터베이스 사용자 등록에 대해서 알아본다. 아래 스크립트는 현재 등록된 사용자를 확인할 수 있다. use mysql; select * from user; 새로운 사용자(실습에서는 sqlmvp 라는 사용자 생성) 등록을 하기 위해서는아래 스크립트를 실행 한다. 그리고 Grant 명령어로 접근 권한을 설정한다. create user 'sqlmvp'@'localhost' IDENTIFIED BY 'password1234'; grant all on *.* to 'sqlmvp'@'localhost'; 만약 특정 IP가 아닌 어디서든 접속 가능하게 하려면 % 옵션을 사용하여 사용자 권한을 부여 할 수 있..

MySQL, MariaDB 2019.03.24

How to check if Azure SQL is using In-Memory

How to check if Azure SQL is using In-Memory - Azure SQL에서 In-Memory를 사용하는지 확인하는 방법 - Premium Tier에서 Standard Tier 로 변경 시 프리미엄 서비스 사용 확인 · Version : AzureSQL Azure SQL 사용시 Tier 마다 지원되는 기능이 조금씩 다르다. 그중 P Tier는 Premium 서비스로 In-Memroy 테이블이 지원된다. 이번 포스트에서는 P Tier에서 하위 S Tier로 변경 시 In-Memory 서비스를 사용하고 있는 테이블이 있는지 확인하는 방법에 대해서 알아본다. · Service Tier : https://docs.microsoft.com/en-us/azure/sql-database/..

MSSQL-CLI를 활용한 크로스플랫폼에서 SQL Server 관리하기

MSSQL-CLI를 활용한 크로스플랫폼에서 SQL Server 관리하기 - 다양한 플랫폼에서 SQL Server 명령을 사용 l Version : All Verison Microsoft는 SQL Server와 상호작용할 수 있는 크로스플랫폼 명령줄 도구인 MSSQ-CLI를 출시하였다. 이번 포스트에서는 MSSQL-CLI 설치 및 기능에 대해서 살펴본다. MSSQL-CLI는 새로 도입된 대화형 명령줄 도구로 SQL Server 데이터베이스에서 사용하는 많은 기능의 쿼리를 실행한다. 또한 MSSQL-CLI는다양한 플랫폼에서 작동하는 오픈소스 도구이다. MSSQL-CLI는 Python으로 작성되었으며 command line interface 프로젝트인 pgcli와 mycli 기반으로 한다. MSSQL-CLI ..

SSMS – Search for execution plan

SSMS – Search for execution plan - 실행계획에서 검색 기능을 활용하여 원하는 항목 찾기 · Version : SSMS 17.2 later SQL Server에서 실행계획은 쿼리를 튜닝할때 참고해야하는 매우 중요한 정보이다. 복잡한 쿼리의 경우 실행계획도 매우 복잡하게 표현되어 원하는 부분을 빠르게 찾아서 보기 힘든경우가 많다. SSMS 17.2 이전 버전에서는 실행계획을 XML 형식으로 표시한 다음 검색 기능을 활용하여 원하는 항목을 찾아 볼 수 있었다. 하지만 이 방법은 매우 직관적이지 않으며 복잡한 경우 다시 그래픽 환경의 실행계획을 참고하며 보아야하는 불편함이 있었다. SSMS 17.2 이후 버전에서는 그래픽 실행계획에서 마우스 오른쪽 버튼을 클릭하여 나타난 팝업 메뉴에서..