본문 바로가기

IT_Developers/MySQL59

MySQL - 테이블의 사용중인 저장엔진 알아보는 방법 / information_schema.TABLES 안녕하세요. 고코더 입니다. 저장엔진의 대해서 설명을 하였습니다. 그리고 이번 시간에는 데이터베이스의 테이블에서 사용중인 저장엔진을 알아보는 방법을 알아보겠습니다. ●1. 사용법은 "information_schema.TABLES" 을 이용합니다. 해당 테이블을 테이블의 정의 및 정보를 알 수 있는데 여기에 바로 저장엔진도 표시가 됩니다. SELECT engine FROM information_schema.TABLES where table_name='테이블'; ●2. 실행 후에 나타난 모습입니다. 해당 테이블의 저장엔진을 확인할 수 있습니다. ●3. 간혹 테이블에 트랜젝션이 실행되지 않는다면 해당 방법을 통해 InnoDB가 맞는지 확인해보세요. 2021. 11. 12.
MySQL - 쿼리를 지연 시키기 / SLEEP() 의도적으로 쿼리 지연 시키는 함수 안녕하세요. 고코더 입니다. 쿼리를 의도적으로 중단시켰다가 다시 실행할 수 있는 함수가 있습니다. 바로 SLEEP() 입니다. 이름 그대로 잠깐 잠들었다 진행되게 만드는 역할을 합니다. 사용법 ● 1. 해당 SQL을 실행하면 'start'가 표시되고 10초 후에 End가 표시됩니다. 중간이 끼어든 sleep() 함수가 잠깐 멈추고 진행시키게 때문입니다. SELECT 'Start'; DO SLEEP(10); SELECT 'End'; 사용하는 이유? ● 2. 사실 대부분 테스트 용도로 많이 사용하게 됩니다. 중간에 실행되는 쿼리를 살펴보고 싶거나 결과를 확인하고 넘어가고 싶을때 사용하기도 합니다. 그리고 실무에서는 아직 한번도 사용해서 개발을 해본적은 없지만 필요한 경우는 .. 2021. 11. 12.
MySQL -사용 가능한 저장엔진(Storage Engine) 알아보기 / SHOW ENGINES 현재 MYSQL 에서 지원하는 스토리지 엔진 알아보기 안녕하세요. 고코더 입니다. ● 1. 저장엔진에 대해서 간단하게 알아보았습니다. 그런데 정작 중요한 건 내가 사용하는 MYSQL에서는 어떤 스토리지 엔진이 사용 가능한지 알아야 합니다. 그래서 간단한 명령어로 이를 알아보는 방법이 있습니다. SHOW ENGINES ●2. mysql에 상에서 "SHOW ENGINES" 명령어를 실행합니다. 그러면 아주 친절하게 사용 가능한 저장 엔진의 목록이 펼쳐집니다. 그리고 간단한 설명과 함께 트랜젝션 여부까지 역시 친절한 데이터베이스입니다. ●3. MYSQL에서 나온 내용 그대로 해당 설명을 표로 남겨드립니다. engine suport comment transactions xa FEDERATED NO Federat.. 2021. 11. 12.
MySQL - 저장 엔진(Storage Engine)이란? / 대표적인 종류와 실무에서 간단 사용법 안녕하세요. 고코더 입니다. 저장 엔진이란? 파일의 접근이다. ● 1. 저장엔진 일명 "스토리지 엔진"은 데이터베이스에서 데이터를 접근하는 방식에 대해 말합니다. Mysql에서 테이블을 생성하면 실제로 서버상에는. frm이라는 파일을 생성합니다. 이 파일에 접근하는 속성을 설정하는 것이 바로 저장 엔진입니다. 실제로 파일도 읽기 전용 파일, 수정 가능한 파일로 속성을 정할 수 있는 것처럼 저장 엔진도 이 파일에 대한 접근방식을 말합니다. 스토리지 엔진의 특성에 따라 데이터 접근, 안정성, 트랜잭션 등의 기능의 차이점가 발생합니다. 즉 다시 정리하면 "서버 엔진이 필요한 물리적인 데이터를 가져오는 장치"입니다. 대표적인 저장 엔진의 종류 저장 엔진 설명 특징 트랜젝션 여부 ISAM MySQL 5.0 이전에.. 2021. 11. 12.
MySQL - 테이블 생성 스크립트 확인하기 / SHOW CREATE TABLE 특정 테이블 만드는 SQL 확인하기 안녕하세요. 고코더 입니다. ● 1. MySQL에서는 특정 테이블의 생성 스크립트를 확인할 수 있는 방법이 있습니다. 바로 SQL처럼 "SHOW CREATE TABLE" 이라는 명령어를 통해 확인이 가능합니다. SHOW CREATE TABLE "테이블명"; ● 2. 해당 쿼리문을 실행하면 생성 쿼리를 확인이 가능합니다. create Table 칼럼에 노출된 텍스트를 활용하여 똑같은 테이블을 생성할 수 있습니다. 2021. 11. 9.
MySQL - server has gone away 원인은? 대응법 안녕하세요. 고코더 입니다. ● 1. mysql을 이용한 웹서비스를 개발하던 중 조금은 난감한 메시지가 떴습니다. 해석해보면 "서버가 사라졌다!" server has gone away ● 2. 이 부분의 원인은 서버의 문제일 수 있고, 소스 상의 문제일 수도 있습니다. 만약 잘되던 날에 갑자기 이런 메시지가 있다면 서버를 살펴보시거나 담당자에게 문의해야 합니다. ● 3. 소스가 원인이라면 해당 문제가 생기는 이유 중에 가장 많은 패턴은 데이터 전송량이 초과하는 경우입니다. 데이터의 전송이 길어지면서 초과되면 해당 메시지가 뜨는 경우가 발생합니다. 이럴 경우 my.cnf에서 설정을 변경해보시길 바랍니다. 기본 값과 최대 값 사이를 입력해서 설정을 바꿔 보시기 바랍니다. wait_timeout = --// .. 2021. 11. 8.
MySQL - ERROR 1366 (HY000) : incorrect string value / 테이블에 한글 입력시 오류 해결법 한글 입력 가능하게 테이블 인코딩 변경 안녕하세요. 고코더 입니다. ● 1. mysql에서 이런 오류 메시지가 나타날 때가 있습니다. ERROR 1366 (HY000) : incorrect string value ● 2. 원인은 테이블이 한글을 읽을 수 없는 형식이기 때문입니다. 테이블을 만들 때 utf-8로 생성해야 합니다. 생성 시에 "SET UTF8 COLLATE UTF8_GENERAL_CI"를 입력해줘야 한글도 받아들일 수 있는 UTF-8이 됩니다. CREATE DATABASE 테이블명 DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI; ● 3. 만약 기존 테이블을 수정해야 한다면 아래처럼 alter 기능으로 변경하시면 됩니다. ALTER DATABASE .. 2021. 11. 8.
MySQL - 컬럼 not null 로 변경하기 / alter table 컬럼 속성을 not null -> null 안녕하세요. 고코더 입니다. 테이블을 사용할 때 기본 속성은 null을 허용합니다. 하지만 간혹 생성 후에 not null 일명 null 값이 들어가지 못하게 하도록 변경할 때가 있습니다. 방법은 아주 간단하나 자주 까먹어서 남겨봅니다. ● 1. 해당 SQL을 확인해보세요. alter table을 선언하고 필요한 옵션을 바꿉니다. 맨 마지막에 not null을 추가로 입력해주면 완료입니다. alter table GOODS modify column name varchar(50) not null ● 2. 반대로 다시 null을 허용하고 싶다면? 이런 식으로 not null을 지워서 기본 옵션으로 돌아가면 됩니다. alter table GOODS modify colu.. 2021. 11. 8.
MySQL - 날짜, 시간 차이를 구하는 함수 / TIMESTAMPDIFF() mysql 에서 두 변수의 시간과 날짜의 차이를 알수 있는 함수 안녕하세요. 고코더 입니다. Mysql에서 쉽게 날짜의 차이를 구할 수 있는 함수를 알아보겠습니다. 그 주인공은 TIMESTAMPDIFF()입니다. ● 1. 해당 함수의 사용법은 첫 번째에는 차리를 구할 단위, 그리고 두 번째, 세 번째에는 날짜를 입력합니다. 아래 SQL은 두 날짜의 시간의 차이를 구하고 있습니다. SELECT TIMESTAMPDIFF(HOUR,'2022-01-01 01:00','2022-01-02 01:00') as 'TIMESTAMPDIFF'; ● 2. 두 날짜는 하루가 차이가 납니다. 그래서 24가 표시됩니다. 만약 반대로 하루 전이라면 -24가 노출됩니다. ● 3. 구할 수 있는 단위는 아래와 같습니다. YEAR 연.. 2021. 11. 8.