■ Internal Locking Methods 이 섹션에서는 내부 잠금에 대해 설명합니다. 즉, 여러 세션으로 테이블 내용에 대한 경합을 관리하기 위해 MySQL서버 자체에서 잠금이 수행됩니다. 이 유형의 잠금은 전적으로 서버에 의해 수행되며 다른 프로그램과 관련이 없기 때문에 내부적입니다. + Row-Level(행 수준) 잠금 + 테이블 레벨(Table-Level) 잠금 + 잠금 유형 선택 ▶︎ 행 단위(Row-Level) Locking MySQL은 InnoDB 테이블에 Row-level(행 수준) 잠금을 사용하여 여러 세션의 동시 쓰기 액세스를 지원하므로 다중 사용자, 동시성이 높은 OLTP 애플리케이션에 적합합니다. 단일 InnoDB 테이블에서 여러 개의 동시 쓰기 작업을 수행 할 때 교착 상태를..
이 글에서는 InnoDB 테이블, 인덱스, 테이블 스페이스 및 InnoDB 스토리지 엔진의 다른 측면에 대한 제한 사항에 대해 설명합니다. + 테이블은 최대 1017 개의 컬럼을 포함 할 수 있습니다 (MySQL 5.6.9에서 초기 제한 인 1000에서 발생). 가상 생성 컬럼이 이 제한에 포함됩니다. + 테이블은 최대 64 개의 보조(secondary) 인덱스를 포함 할 수 있습니다. + innodb_large_prefix가 활성화 된 경우(기본값) 인덱스키에 정의된 제한은 DYNAMIC 또는 COMPRESSED 행 형식을 사용하는 InnoDB 테이블에 대해 3072바이트입니다. innodb_large_prefix를 비활성화하면 모든 행 형식의 테이블에 대해 인덱스키에 정의된 제한이 767 바이트입니다..
MySQL에서 파티션 삭제시 조심해야 할 사항이 있습니다. 바로 대용량의 파티션을 DROP하는 일입니다. 파티션 테이블을 사용하는 이유는 아마 대부분 로그성 데이터 때문일 것입니다. 이 로그성 테이블은 회사마다 틀리겠지만 보통 기가단위로 되어 있을 것입니다. 댜량의 트랜잭션이 발생되고 있는 운영 데이터베이스에서 파티션 테이블의 특정 파티션 삭제 시도시 테이블이 순간 Freezing되는 현상이 발생할 수 있습니다. 크기에 따라 달라지긴 하겠지만 큰 사이즈의 파티션일 경우 몇초가 걸릴수도 있습니다. 또한 파일시스템의 종류에 따라 발생하는 문제가 조금 상이할 수 있습니다. 이는 운영환경에서 사용시 크게 문제가 발생할 수 있습니다. Drop중일때 해당 테이블에 Table Lock을 걸기 때문에 다른 트랜잭션이 ..
■ Purge 명령어 관련 binary logs 파일을 삭제하는 명령어입니다. 'bin log' 파일을 지정하면, 그 이전의 bin log 파일을 지우며, 지울 날짜를 지정하면 '지정한 날짜' 이전에 만들어진 bin log 파일을 지우게 됩니다. 또한 mysqlbinlog 명령을 사용하여 그 내용을 볼 수 있습니다. RESET MASTER; bin log 파일을 모두 지움 가장 최근 것 bin log 파일만 존재함 PURGE [MASTER] LOGS TO 'logname'; PURGE [MASTER] LOGS BEFORE 'date'; binlog-name까지 지움 date이전까지 지움 [형식] PURGE [MASTER] LOGS TO 'binlog-name' PURGE [MASTER] LOGS BEFO..
1. 실행중인 MySQL을 종료합니다. # /etc/init.d/mysql stop 2. "./mysqld_safe --skip-grant-table &" 로 사용자 인증과정 없이 MySQL를 실행합니다. # ./mysqld_safe --skip-grant-table & 3. 패스워드 없이 MySQL root 계정으로 MySQL에 접속합니다. # ./mysql -u root mysql 4. update문으로 MySQL 데이터베이스의 user 테이블에 있는 MySQL root사용자의 패스워드를 변경합니다. mysql> update user set password=password('1111') where user = 'root'; 5. "flush privileges" 명령어로 변경된 MySQL 권한테이블(..
■ show 명령. ▶︎ Binlog 리스트 출력. mysql> SHOW BINARY LOGS; mysql> SHOW MASTER LOGS; mysql> SHOW BINARY LOGS; +---------------+-----------+ | Log_name | File_size | +---------------+-----------+ | binlog.000015 | 724935 | | binlog.000016 | 733481 | +---------------+-----------+ show binary logs와 show master logs는 출력내용이 같습니다. ▶︎ 이벤트 출력. 명령어 형식 --------------------------------------------- SHOW BINLOG E..
■ CHECKSUM TABLE 문 CHECKSUM TABLE tbl_name [, tbl_name] ... [QUICK | EXTENDED] CHECKSUM TABLE은 테이블 내용에 대한 체크섬을 보고합니다. 이 명령문을 사용하여 백업, 롤백 또는 데이터를 알려진 상태로 되돌리려는 기타 작업 전후의 내용이 동일한지 확인할 수 있습니다. 이 명령문에는 테이블에 대한 SELECT권한이 필요합니다. 이 명령문은 뷰에 지원되지 않습니다. 뷰에 대해 CHECKSUM TABLE을 실행하면 체크섬 값은 항상 NULL이며 경고가 리턴됩니다. 존재하지 않는 테이블의 경우 CHECKSUM TABLE은 NULL을 반환하고 경고를 생성합니다. 체크섬 작업 중에 테이블은 InnoDB 및 MyISAM에 대한 읽기 잠금으로 잠 ..
■ CHECK TABLE 명령 CHECK TABLE tbl_name [, tbl_name] ... [option] ... option: { FOR UPGRADE | QUICK | FAST | MEDIUM | EXTENDED | CHANGED } CHECK TABLE은 테이블에 오류가 있는지 확인합니다. MyISAM 테이블의 경우 주요 통계도 업데이트됩니다. CHECK TABLE은 뷰 정의에서 더 이상 존재하지 않는 테이블을 참조하는 문제같은 것들을 확인할 수도 있습니다. 테이블을 확인하려면 테이블에 대한 권한이 있어야합니다. CHECK TABLE은 InnoDB, MyISAM, ARCHIVE 및 CSV 테이블에서 작동합니다. InnoDB 테이블에서 CHECK TABLE을 실행하기 전에 InnoDB 테이블에..
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을 사용하여 하나, 또는 그 이상의..
보통 응답파일은 Unix일경우 cde환경이나 linux일경우 x-window 상태에서 db2setup을 하면 GUI환경에서 설치할때 기본으로 생성이 됩니다. 이후 만약 응답파일을 삭제했는데 수동설치가 필요하여 응답파일이 필요하면 다음 명령어를 이용하여 응답파일(xxxx.rsp)을 추출할 수 있습니다.. ▶︎ 응답파일 생성기 /bin/db2rspgn -d -i ▶︎ 구성 프로필 생성기 /bin/db2cfexp [template | backup | maintain] 위와 같이 하면 2가지 파일이 생성됩니다. 응답파일은 db2 엔진을 설치하고 바로 인스턴스까지 생성이 됩니다. 물론 기본 시스템에서 뽑아낸 계정과 같다는 전제조건에서 가능합니다. 만약 기존환경과 다르다면 xxx.rsp파일을 편집하여 설치하려는 시..
■ SHOW PROCES 문법 사용법 : SHOW [FULL] PROCESSLIST SHOW PROCESSLIST는 실행중인 스레드를 보여줍니다. PROCESS 권한이 있으면 다른 사용자에게 속한 스레드까지 모든 스레드를 볼 수 있습니다. 그렇지 않으면 (PROCESS없이) 비 익명 사용자는 자신의 스레드에 대한 정보에 액세스 할 수 있지만 다른 사용자의 스레드에는 액세스 할 수 없으며 익명 사용자는 스레드 정보에 액세스 할 수 없습니다. FULL 키워드가 없으면 각 문장의 처음 100 자만 정보 필드에 표시됩니다. SHOW PROCESSLIST 명령문은“too many connections”오류 메시지가 표시되고 현재 진행중인 작업을 찾으려면 매우 유용합니다. MySQL은 SUPER 권한이 있는 계정에..