Computer/MySQL 20

mysql 캐릭터셋

character_set_client : 클라이언트가 서버로 보내는 명령문 문자셋 character_set_connection : 서버가 명령문을 해석하기 위해 사용하는 문자셋 character_set_database : 현재 데이터 베이스의 기본 문자셋 없으면 서버의 기본 문자셋 character_set_results : 서버가 결과값을 클라이언트에 보내는 문자셋 character_set_server : Mysql 시작시 옵션 default-character-set=utf8 에 의해 결정되는 default 캐릭터셋 이 글은 스프링노트에서 작성되었습니다..

Computer/MySQL 2012.08.10

mysql 변수

5.2.2. 서버 시스템 변수 mysql 서버는 서버가 어떻게 구성되었는지를 가리키는 많은 시스템 변수들을 유지 관리 한다. 각 시스템 변수는 디폴트 값을 가지고 있다. 시스템 변수들은 명령어 라인 또는 옵션 파일에서 옵션을 사용하여 서버 스타트업 때 설정될 수 있다. 대부분의 것들은 서버가 구동되고 있는 동안에 SET 명령문을 가지고 동적으로 변경할 수 있는데, 이 명령문은 서버를 종료하고 재 구동 시키지 않는 상태에서 서버 동작을 수정할 수 있다. 여러분은 수식 안에 있는 시스템 변수를 참조할 수도 있다. 시스템 변수 이름과 값을 볼 수 있는 방법은 여러 가지가 있다: * 서버가 디폴트 및 옵션 파일에서 읽는 변수 값을 보기 위해서는, 아래의 명령어를 사용한다: mysqld --verbose --he..

Computer/MySQL 2012.08.10

mysql 백업/복구

최근들어 mysql 서버이전을 하면서 캐릭터셋 문제에 봉착하는 사람들이 많아졌다. 그런 분들을 위해 과정을 정리해 봤다 도움이 되었으면 한다. 아래의 정리는 경험을 바탕으로 적었기에 문제는 없을거 같지만 모든 환경을 테스트한것이 아니기에 이게 정답이다라고 할수는 없을것이기에 부족한 부분은 조언을 주셨으면 한다. 보통 3.x대 또는 4.x대에서 오랫동안 사이트를 운영하다 이번에 5.x 로 업하시는 분들이 이런 문제에 많이 봉착한다. 3.x 나 4.x 에서는 국내에 호스팅 환경이 euc-kr, euckr 이 대세였기에... 하지만 요즘은 utf8을 기본 지원하고 extra character set 으로 euckr 을 구축하는게 호스팅사들이 많은거 같다. Type A 기본 캐릭터셋 euckr 서버에서 기본 캐..

Computer/MySQL 2012.08.10

mysql procedure function

간단하게 실무에 사용 할 수 있게 요약만 적었습니다. 1) 기존 DB 에서 원하는 값만 따로 Table 생성 및 자료 구겨넣기 CREATE TABLE member2 TYPE=innodb AS SELECT * FROM member WHERE joindate BETWEEN '1999-01-01' AND '2006-12-31'; 2) PROCEDURE 2-1) Mysql 에서 PROCEDURE 부르는 방법 : call 함수명('인자') 2-2) 사용법 샘플 CREATE PROCEDURE bengi_exam1() BEGIN -- 변수 선언 DECLARE bgtotal INTEGER; -- 회원테이블에서 벤지라는 글자가 들어간 사람의 총수을 구해서 -- bgtotal 변수에 저장 SELECT COUNT(upk) ..

Computer/MySQL 2012.08.10

mysql innodb

Mysql에서 innodb 는 상용DB와 비슷한 기능들을 지원한다. 물론 아직도 지원하지 않는 기능이 많지만... 그럭저럭 쓸만하다. 다음은 그중 외래키 지원에 관한것이다. 외래키란 A, B 라는 테이블이 있을경우 A 테이블 Key 값을 참조하여 B 테이블에서 사용할때 B테이블의 Key를 외래키라고 한다. 참고로 A 테이블의 참조하는 키를 참조키라고 한다. 그러므로 A 테이블의 참조키와 B 테이블의 외래키값은 동일한 값이 들어간다. 그외 자세한 내용은 인터넷에 많으니 찾아보시고... ^^ 그러나 Web 쪽에서 Mysql 이 많이 사용되다 보니 거의 외래키를 사용할일이 없고.. 웹호스팅사에서도 거의 InnoDB는 잘 지원하지 않다 보니 자주 사용되지는 않는다. Mysql 서버를 독자적으로 쓰거나.. 또는 ..

Computer/MySQL 2012.08.10

mysql event

Mysql 5.1.17 에서부터는 Event 란 기능을 어느정도 이용할수 있다고 한다. Event 란 특정 시간에 어떠한 쿼리 프로시저 함수등을 실행 시키는것을 말한다. 우선 root 권한으로 작업을 한다는 가정하에 적는다. Event 를 사용하기위해서는 1. 서버가 동작중이라면 아래와 같은 SQL문을 통해 실행할수 있다. SET GLOBAL event_scheduler = ON; SET @@global.event_scheduler = ON; SET GLOBAL event_scheduler = 1; SET @@global.event_scheduler = 1; 2. my.cnf or my.ini 에 옵션(event_scheduler=On)을 추가하고 mysql 을 시작한다. 반대로 Event 를 사용하지 ..

Computer/MySQL 2012.08.10

트리거에서 테이블명 변수로 사용하여 실행하기

트리거나 프로시저에서 테이블명을 변수로 받아서 사용해야 할때가 있습니다.이렇게 될 경우 캐쉬를 사용하지 못하지만,그래도 긴 명령문을 간략하게 넘길수 있다는 장점은 있습니다. 트리거에서 테이블명 변수로 사용하여 실행하기 -우선 쿼리실행할 프로시져 생성- CREATE DEFINER=`user`@`localhost` PROCEDURE `P_SQL_RESULT`(IN `xSql` TEXT) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '쿼리실행' BEGIN SET @xSql = xSql; PREPARE dSql FROM @xSql; EXECUTE dSql ; DEALLOCATE PREPARE dSql; END ---------..

Computer/MySQL 2012.07.12

SELECT COUNT(0) 은 COUNT(*) 와 같다?

MySQL 대용량 데이터베이스 책 읽고 있는데, --------------------------------------------- no 이름 --------------------------------------------- 1 하하하 2 알찬돌삐 null 히히히 라고 되어있을때. SELECT COUNT(no) FROM table 을 할 경우. 2 를 반환합니다. 전 보통 SELECT COUNT(0) FROM table 을 쓰는데, null 이 올수 없는 컬럼 (0) 이 count 함수안에 올 경우 내부적으로 COUNT(*) 으로 변환되다고 하네요. COUNT(no) 를 하면 no 에서 null 아닌 것을 카운트하며, COUNT(*) 를 할 경우 전체 컬럼을 세는것이 아니라.... 행의 갯수만 세개 된다고..

Computer/MySQL 2011.01.24