■ AES 암호화 기법MySQL에서 제공하는 암호화 기법은 여러가지가 있습니다.https://dev.mysql.com/doc/refman/5.7/en/encryption-functions.html 그중에 키를 이용한 AES 암호화 기법이 있습니다. 이것에 대해 한번 알아보겠습니다. 이 암호화 기법은 AES 암호 알고리즘(Advanced Encryption Standard)이라고 합니다.다음을 참고하시면 자세한 내용을 확인해 보실 수 있습니다.https://namu.wiki/w/AES ■ 암호화 설정암호화 방식은 서버 변수로 설정을 합니다. 이 설정 방법에 따라 강력한 암호화를 설정할 수 있습니다.대신 그만큼 성능이 낮아지는것은 참고하셔야 합니다. 서버변수중 block_encryption_mode이란 변..
■ SHOW ENGINE 명령어 사용법SHOW ENGINE engine_name {STATUS | MUTEX} SHOW ENGINE은 스토리지 엔진에 대한 운영 정보를 표시합니다. PROCESS 권한이 필요합니다. 이 문장에는 다음과 같은 다양한 방법이 있습니다.SHOW ENGINE INNODB STATUSSHOW ENGINE INNODB MUTEXSHOW ENGINE PERFORMANCE_SCHEMA STATUSSHOW ENGINE INNODB STATUS 표시는 InnoDB 스토리지 엔진의 상태에 대한 표준 InnoDB 모니터의 광범위한 정보를 표시합니다.InnoDB 모니터 바로가기SHOW ENGINE INNODB MUTEX는 InnoDB 뮤텍스 및 rw-lock 통계를 표시합니다. SHOW ENGI..
■ Prepared 명령(Prepared Statement)• PREPARE Statement• EXECUTE Statement• DEALLOCATE PREPARE Statement MySQL 5.7은 server-side prepared statements을 지원합니다. 이 지원은 효율적인 클라이언트 / 서버 바이너리 프로토콜을 활용합니다. 매개 변수 값에 자리 표시 자와 함께 prepared statements을 사용하면 다음과 같은 이점이 있습니다.+ 실행될 때마다 명령문을 구문 분석하기위한 오버 헤드가 줄어 듭니다. 일반적으로 데이터베이스 응용 프로그램은 쿼리 및 삭제 WHERE, 업데이트 SET 및 삽입 VALUES와 같은 절의 리터럴 또는 변수값만 변경하여 대량의 거의 동일한 명령문을 처리합니..
머리말 DB2의 세계로 막 진입한 DBA나 앞으로 DBA가 될 사람들에게는 새로운 데이터베이스를 위한 디자인과 퍼포먼스를 선택하기란 매우 어렵다. 이 글에서, DBA에게 있어 중요한 두 가지 영역에 대해 살펴보기로 한다. 바로 테이블 공간과 버퍼 풀이다. 테이블 공간과 버퍼 풀을 어떻게 디자인 하는냐, 또 어떻게 튜닝하느냐에 따라 DB2 Server의 성능에 큰 영향을 줄 수 있기 때문에 테이블 공간과 버퍼 풀의 디자인과 튜닝에 초점을 맞추어 설명하도록 한다. 예제는 DB2 version 8.1, Enterprise Server Edition을 기준으로 한다. 예제 대부분은 이전 버전에도 적용된다. version 8.1에만 적용될 경우 별도로 알려주겠다. Section 1에서는 DB2가 테이블 공간 Ty..
■ KILL 명령어KILL [CONNECTION | QUERY] processlist_idmysqld에 대한 각 연결은 별도의 스레드에서 실행됩니다. KILL processlist_id 문으로 스레드를 강제 종료 할 수 있습니다. 스레드 프로세스 목록 식별자는 INFORMATION_SCHEMA PROCESSLIST 테이블의 ID 컬럼, SHOW PROCESSLIST 출력의 ID컬럼 및 성능 스키마 스레드 테이블의 PROCESSLIST_ID 컬럼에서 확인할 수 있습니다. 현재 스레드의 값은 CONNECTION_ID () 함수에 의해 리턴됩니다. KILL은 선택적 CONNECTION 또는 QUERY 수정자를 허용합니다.+ KILL CONNECTION은 수정자가 없는 KILL과 같습니다. 연결이 실행중인 명령..
■ Flush 명령문FLUSH [NO_WRITE_TO_BINLOG | LOCAL] { flush_option [, flush_option] ... | tables_option}flush_option: { BINARY LOGS | DES_KEY_FILE | ENGINE LOGS | ERROR LOGS | GENERAL LOGS | HOSTS | LOGS | PRIVILEGES | OPTIMIZER_COSTS | QUERY CACHE | RELAY LOGS [FOR CHANNEL channel] | SLOW LOGS | STATUS | USER_RESOURCES}tables_option: { TABLES | TABLES tbl_name [, tbl_name] .....
애플리케이션의 동시성이 높은 테이블과 연결된 인덱스에서 높은 인덱스 리프 블록 경합을 볼 수 있습니다. 이것은 일반적으로 응용 프로그램이 많은 INSERT 및 DELETE를 수행 할 때 발생합니다.그 이유는 인덱스에 새 행을 삽입하는 동안 인덱스 블록이 분할되기 때문입니다. 트랜잭션은 블록 분할을 수행하는 세션이 작업을 완료할 때까지 모드 4에서 TX 잠금을 기다려야합니다. ■ 이유애플리케이션에서 많이 액세스되는 테이블의 인덱스입니다.단조 증가하여 삽입 된 값이있는 테이블 열의 인덱스입니다.대량으로 삭제된 테이블 ■ 인덱스 리프 블록 경합 감지핫 인덱스를 찾는 방법에는 여러 가지가 있습니다.• AWR 보고서에서 높은 "enq : TX – 인덱스 경합"시스템 대기 확인• 동시에 AWR 보고서의 인스턴스 활..
□ Auto Commit ModeInnoDB로 데이터를 가져올 때 오토커밋 모드는 모든 삽입에 대해 디스크로 로그 플러시를 수행하므로 오프시킵니다. 가져 오기 작업 중에 오토 커밋을 비활성화하려면 SET autocommit 및 COMMIT 문으로 감쌉니다.SET autocommit=0;... SQL import statements ...COMMIT;mysqldump 옵션 --opt는 SET autocommit 및 COMMIT 문으로 랩핑하지 않아도 InnoDB 테이블로 빠르게 가져 올수 있도록 덤프 파일을 작성합니다. □ UNIQUE Key 제약해제보조 키에 UNIQUE 제약 조건이 있는 경우, 가져 오기 세션 중에 고유성 검사를 일시적으로 해제하여 테이블 가져 오기 속도를 높일 수 있습니다.SET un..
■ InnoDB AUTO_INCREMENT Lock 모드innodb_autoinc_lock_mode 구성 매개 변수에 대한 세 가지 가능한 설정이 있습니다. 설정은 "전통", "연속"또는 "인터리브 된"잠금 모드에 대해 각각 0, 1 또는 2입니다. + innodb_autoinc_lock_mode = 0 (“전통(traditional)” lock mode)전통적인 잠금 모드는 innodb_autoinc_lock_mode 구성 매개 변수가 MySQL 5.1에 도입되기 전에 존재했던 것과 동일한 동작을 제공합니다. 기존 잠금 모드 옵션은 시맨틱의 차이로 인해 "혼합 모드 삽입"과 관련된 문제와의 호환성, 성능 테스트 및 이전 버전과의 호환성을 위해 제공됩니다. 이 잠금 모드에서 모든 "INSERT-문과 비슷..
우연히 IBM Developer Group에서 IBM Cloud 관련 행사를 모집하는 글을 발견하였습니다. IBM Cloud위에서 사용할 수 있는 다양한 기술들을 공부하고, 온오프라인으로 기록을 남기고 발표하며 알리는 활동을 하는 IBM 클라우더스! 이 문구를 보고 바로 지원을 하였습니다. 그러나 지원한다고 아무나 받아주는것이 아니었습니다. IBM담당자분들이 지원서를 보고 합격을 한 사람만이 이 프로그램에 참가할 수 있었던 것이었습니다.!!! 나름 열심히 작성하고 IBM Cloud를 꼭 사용하고 공부해보고 싶다고 나름 정성스럽게 작성하였고, 마침내 Clouders 그룹원이 되었습니다. 클라우더스의 까페에 가입을 하고 첫 자기소개를 하는데 거의 대부분 소개글이 대학생분들밖에 보이지 않았습니다. 그래서인지 ..
명령어 형식 TRUNCATE [TABLE] tbl_name TRUNCATE TABLE 명령문은 테이블의 내용을 완전하게 비웁니다. Drop 권한이 필요합니다. 테이블의 TRUNCATE TABLE은 HANDLER OPEN으로 열린 테이블의 모든 핸들러를 닫습니다. 논리적으로 TRUNCATE TABLE은 모든 행을 삭제하는 DELETE 문, 또는 DROP TABLE 및 CREATE TABLE 문 시퀀스와 유사합니다. 고성능을 달성하기 위해 데이터를 삭제하는 DML 방법을 무시합니다. 따라서 롤백할 수 없고 ON DELETE 트리거가 발생하지 않으며 부모-자식 외래 키 관계가있는 InnoDB 테이블에 대해 수행될 수 없습니다. TRUNCATE TABLE은 DELETE와 비슷하지만 DML 문이 아닌 DDL문으로..
Oracle의 Connect by절은 보통 계층적인 구조를 만들때 사용합니다. 그러나 DB2에서는 위의 SQL문을 제공하지 않습니다. 다른 DBMS에도 없는 것으로 알고 있습니다.그래서 계층 구조를 만들려면 With절을 이용해서 만들어야 합니다.다음 사이트를 참고합니다.http://www.ibm.com/developerworks/data/library/techarticle/dm-0510rielau/DB2 9.5 SQL CookBook에도 나와있습니다. (18page 맨아래 예제, 307page)예제 1. (LEVEL 숫자 포함)OracleSELECT LEVEL, name FROM empSTART WITH name = 'Goyal'CONNECT BY PRIOR empid = mgridDB2WITH n(le..