MyISAM 테이블의 REPAIR TABLE 명령은 수리 작업에 myisamchk를 사용하는 것과 유사하며 동일한 성능 최적화중 일부가 적용됩니다. + myisamchk에는 메모리 할당을 제어하는 변수가 있습니다. 변수를 설정하여 성능을 향상시킬 수 있습니다. 아래에서 설명합니다. + REPAIR TABLE의 경우에도 동일한 원칙이 적용되지만 수리는 서버에서 수행하므로 myisamchk 변수 대신 서버 시스템 변수를 설정합니다. 또한 메모리 할당 변수를 설정하는 것 외에도 myisam_max_sort_file_size시스템 변수를 늘리면 복구가 더 빠른 파일 정렬 방법을 사용하고 키 캐시 방법에 의해 느린 복구를 회피할 가능성이 높아집니다. 테이블 파일의 사본을 보유하기에 충분한 여유 공간이 있는지 확인..
■ ANALYZE TABLE Statement ANALYZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE tbl_name [, tbl_name] ... ANALYZE TABLE은 키 분포 분석을 수행하고 명명된 테이블에 대한 분포를 저장합니다. MyISAM 테이블의 경우, 이 명령문은 myisamchk --analyze를 사용하는 것과 같습니다. 이 명령문에는 테이블에 대한 SELECT 및 INSERT 권한이 필요합니다. ANALYZE TABLE은 InnoDB, NDB 및 MyISAM 테이블에서 작동합니다. 뷰에서는 작동하지 않습니다. ANALYZE TABLE은 파티션된 테이블에 대해 지원되며 ALTER TABLE ... ANALYZE PARTITION을 사용하여 하나, 또는 그 이상의..
■ SHOW PROCES 문법 사용법 : SHOW [FULL] PROCESSLIST SHOW PROCESSLIST는 실행중인 스레드를 보여줍니다. PROCESS 권한이 있으면 다른 사용자에게 속한 스레드까지 모든 스레드를 볼 수 있습니다. 그렇지 않으면 (PROCESS없이) 비 익명 사용자는 자신의 스레드에 대한 정보에 액세스 할 수 있지만 다른 사용자의 스레드에는 액세스 할 수 없으며 익명 사용자는 스레드 정보에 액세스 할 수 없습니다. FULL 키워드가 없으면 각 문장의 처음 100 자만 정보 필드에 표시됩니다. SHOW PROCESSLIST 명령문은“too many connections”오류 메시지가 표시되고 현재 진행중인 작업을 찾으려면 매우 유용합니다. MySQL은 SUPER 권한이 있는 계정에..
■ 테이블과 컬럼 ▶︎ 테이블 맨 끝에 \G를 붙이는것과 안붙였을때의 차이가 조금 있습니다. G\를 안붙였을 경우 결과를 테이블 형식으로 보여주고 붙였을 경우 리스트 형식으로 보여줍니다. SHOW CREATE TABLE 명령문 mysql> show create table Account; +---------+-------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +---------+-------------------------------------------------------------------------------..
■ SHOW Variables 명령 형식 SHOW [GLOBAL | SESSION] VARIABLES [LIKE 'pattern' | WHERE expr] SHOW VARIABLES는 MySQL 시스템 변수의 값을 보여줍니다 (5.1.7 절.“서버 시스템 변수”참조). 이 진술은 특권이 필요하지 않습니다. 서버에 연결하는 기능 만 필요합니다. 참고로 MySQL 5.7.6부터 show_compatibility_56 시스템 변수의 값은 여기에 설명 된 명령문에 사용 가능한 정보 및 필요한 특권에 영향을줍니다. 자세한 내용은 “서버 시스템 변수”에서 해당 변수에 대한 설명을 참조합니다. 시스템 변수 정보는 다음 소스에서도 사용 가능합니다. + 성능 스키마 테이블(performance schema). + GLO..
■ SHOW WARNINGS 명령문 SHOW WARNINGS [LIMIT [offset,] row_count] SHOW COUNT(*) WARNINGS SHOW WARNINGS는 현재 세션에서 명령문을 실행하여 발생하는 조건(오류, 경고 및 참고)에 대한 정보를 표시하는 진단 명령문입니다. INSERT, UPDATE 및 LOAD DATA와 같은 DML문과 CREATE TABLE 및 ALTER TABLE과 같은 DDL문에 대해 경고가 생성됩니다. LIMIT절은 SELECT문과 동일한 구문을 갖습니다. EXPLAIN에 따라 생성 된 확장 정보를 표시하기 위해 EXPLAIN에 따라 SHOW WARNINGS도 사용됩니다. 링크-https://myinfrabox.tistory.com/81?category=8291..
■ 테이블 정보와 컬럼 정보 ▶︎ 테이블 정보 맨 끝에 \G를 붙이는것과 안붙였을때의 차이가 조금 있습니다. G\를 안붙였을 경우 결과를 테이블 형식으로 보여주고 붙였을 경우 리스트 형식으로 보여줍니다. •SHOW CREATE TABLE Statement mysql> show create table Account; +---------+-------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +---------+---------------------------------------------------------------..
■ 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_mod..
■ SHOW ENGINE 명령어 사용법 SHOW ENGINE engine_name {STATUS | MUTEX} SHOW ENGINE은 스토리지 엔진에 대한 운영 정보를 표시합니다. PROCESS 권한이 필요합니다. 이 문장에는 다음과 같은 다양한 방법이 있습니다. SHOW ENGINE INNODB STATUS SHOW ENGINE INNODB MUTEX SHOW ENGINE PERFORMANCE_SCHEMA STATUS SHOW ENGINE INNODB STATUS 표시는 InnoDB 스토리지 엔진의 상태에 대한 표준 InnoDB 모니터의 광범위한 정보를 표시합니다. InnoDB 모니터 바로가기 SHOW ENGINE INNODB MUTEX는 InnoDB 뮤텍스 및 rw-lock 통계를 표시합니다. SH..
■ Prepared 명령(Prepared Statement) • PREPARE Statement • EXECUTE Statement • DEALLOCATE PREPARE Statement MySQL 5.7은 server-side prepared statements을 지원합니다. 이 지원은 효율적인 클라이언트 / 서버 바이너리 프로토콜을 활용합니다. 매개 변수 값에 자리 표시 자와 함께 prepared statements을 사용하면 다음과 같은 이점이 있습니다. + 실행될 때마다 명령문을 구문 분석하기위한 오버 헤드가 줄어 듭니다. 일반적으로 데이터베이스 응용 프로그램은 쿼리 및 삭제 WHERE, 업데이트 SET 및 삽입 VALUES와 같은 절의 리터럴 또는 변수값만 변경하여 대량의 거의 동일한 명령문을 ..
■ KILL 명령어 KILL [CONNECTION | QUERY] processlist_id mysqld에 대한 각 연결은 별도의 스레드에서 실행됩니다. 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] ... | TABLES WITH READ..