MySQL_Section
-
[Mysql] MySQL NDB ClusterMySQL_Section/cluster 2014. 11. 18. 17:23
MySQL Cluster저작권:이 문서는 자유롭게 배포가 가능합니다. 단 상업적 용도로 사용할 수 없습니다. 배포 시 작성자의 이름 및 출처를 꼭 명시하기 바랍니다. 작성자 : f405(ccotti22)작성일 : 2005년 8월 10일 수요일 이메일 : f405@naver.com 이 문서는 MySQL Cluster 매뉴얼을 번역, 정리한 것으로 틀린 부분을 다소 포함할 수 있으며, 저는그에 대한 책임을 지지 않겠습니다. 부족하지만 다른 분들도 공부하는데 도움이 되길 바랍니다. 그리고 이 문서를 작성하기 전 참고한 리눅스 및 MySQL 문서들을 작성하신 많은 선배님들에게감사의 말씀을 드립니다. 그리고 이 후부터는 경어는 생략하였습니다. 양해의 말씀을... MySQL 클러스터는 분산 컴퓨팅 환경에서 high..
-
MySQL Cluster 체크포인트 (LCP, GCP)MySQL_Section/cluster 2014. 11. 18. 17:22
『돌고래 사육사』 | 돌고래사육사 http://blog.naver.com/seuis398/70086062984MySQL Cluster에서는 GCP(Global Checkpoint)와 LCP(Local Checkpoint), 2가지 종류의 체크포인트를 수행한다. 일반적으로 DB에서 트랜잭션이 Commit 되면, 트랜잭션 로그(Redo Log)가 디스크로 저장이 된다. 하지만 MySQL Cluster에서는 트랜잭션이 Commit 되는 경우, 트랜잭션 로그(Redo Log)를 디스크에 Flush 하지 않는다. Redo Log는 DB Crash 상황에서 Commit 된 데이터의 복구에 사용되기 때문에 디스크 저장시 Buffered I/O를 하지 않고 fsync 호출을 수행한다. 이로 인해 Redo Log의 디스..
-
[SP] PROCEDURE를 이용한 loop insertMySQL_Section/developer 2014. 11. 18. 17:03
개발하다 보면 테스트를 위해 더미 데이터를 insert 해야 하는 경우가 자주 생긴다 그때 많은 데이터를 넣어야 하는 경우 다음과 같이 sql을 작성하면 편하다. 참고로 AES_ENCRYPT 는 암호화 function이고 CONCAT은 string 연결 function이다. DELIMITER $$ DROP PROCEDURE IF EXISTS `myFunction`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `myFunction`() BEGIN DECLARE i INT DEFAULT 1; WHILE (i
-
[Function] 주민등록번호로 부터 나이 계산하는 함수MySQL_Section/developer 2014. 11. 18. 17:03
===================== MsSQL용=========================================================== SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /* vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker: */ /** * 파일명: GET_AGE * 작성일: 2007-07-21 * 작성자: 얼룩푸우(budget74@nate.com, http://blog.naver.com/budget74) * 설 명: 생년월일로 부터 나이 리턴 ***************************************************************** * */ C..
-
[SP] Procedure 공부MySQL_Section/developer 2014. 11. 18. 17:02
MySQL에서 Procedure를 만들어보자. DELIMITER $$ CREATE PROCEDURE `owner`.`procedure_name` (IN|OUT|INOUT param_name TYPE ) BEGIN 처리문 END$$ DELIMITER ; owner 은 'user name' procedure_name 은 말 그대로 '프로시져 이름' IN|OUT|INOUT 은 파라미터를 어떤 용도로 사용할 것인지 정의한다. - IN 은 프로시져로 입력 - OUT 은 출력 - INOUT 은 입력하고 출력 param_name 은 파라미터 이름 TYPE 는 변수타입 ex) 아이디를 입력해서 회원의 이름을 가져오는 프로시져를 만들어 보자. DELIMITER $$ CREATE PROCEDURE `tester`.`GET..
-
[SP] 테이블 검색 프로시저MySQL_Section/developer 2014. 11. 18. 17:01
DROP TABLE IF EXISTS `test`.`tbl_sp`; CREATE TABLE `test`.`tbl_sp` ( `SEQ` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `DATA` VARCHAR(45) DEFAULT NULL, PRIMARY KEY (`SEQ`) ) ENGINE=INNODB DEFAULT CHARSET=utf8; SELECT * FROM tbl_sp INSERT INTO test.tbl_sp(DATA) VALUES ('mysql'), ('java'), ('hibernate'), ('spring'), ('zapatec'), ('jexcel'), ('iReport'), ('json') DELIMITER $$ DROP PROCEDURE IF EXISTS..
-
[SP] Handler 정의 문장MySQL_Section/운영 2014. 11. 18. 17:00
예제로 간단한 Handler 정의 문장을 살펴보자. 예제 1)DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET error_flag=1; SQLException (Sql State가 "00", "01", "02" 이외의 값으로 시작되는 에러)이 발생했을 때, error_flag 변수의 값을 1로 설정하고, 마지막 실행했던 Stored routine의 코드로 돌아가서 계속 실행(CONTINUE) 예제 2)DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK; SELECT 'Error occurred - terminating'; END; SQLException (Sql State가 "00", "01", "02" 이외의 값으로 시작되는 에..
-
MySQL : UPDATE 문의 다양한 활용MySQL_Section/query 2014. 11. 18. 16:48
MySQL MySQL UPDATE의 활용 업데이트(UPDATE)문은 테이블에 존재하는 값을 수정할때 사용한다. 본인의 경우, CSV 파일을 통하여 테이블에 데이터를 넣었는데 분명 값이 NULL 값이 들어가야 할 곳에 " " 이렇게 스페이스바로 들어가있는 경우를 발견하게 되었다. 이것은...토큰을 잘라서 처리할때 생긴 문제인것같은데... 자세한건 담에 알아보기로 하고 이 부분을 처리하기 위해 업데이트 문을 사용했다. 업데이트 전 쿼리문 UPDATE 테이블명 SET 필드명 = "바꿀 값" WHERE 필드명= "조건 값" 출력 결과 그 외의 활용들 UPDATE 테이블명 SET 필드명 = "바꿀 값" WHERE 필드명 > "조건 값" 조건 값보다 큰 필드의 레코드 값을 수정 UPDATE 테이블명 SET 필드명 ..