본문 바로가기

Database/MySQL

(29)
MySQL Lock metadata lock metadata lock 은 dql, dml, ddl 들의 조합에서 발생하는 테이블의 구조변경 시도에 따른 lock 이다. session 1) metadata lock 발생 mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> drop table t1; Query OK, 0 rows affected (0.02 sec) mysql> create table t1(i1 int primary key,i2 int ); insert into t1 values( 1,1 ); Query OK, 0 rows affected (0.03 sec) mysql> insert into t1 values( 1,1 ); commit; Q..
semi replication install master semi repl plugin mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so'; Query OK, 0 rows affected (0.01 sec) mysql> show variables like 'rpl%'; +-------------------------------------------+------------+ | Variable_name | Value | +-------------------------------------------+------------+ | rpl_semi_sync_master_enabled | OFF | | rpl_semi_sync_master_timeout | 10000 ..
mysql admin script 설치하고 테스트 할때 사용할 스크립트 (xtradb cluster 겸용) MYSQL_HOME=$HOME/mysql ROOT_PASSWD=iamroot OWNER=$USER IP=127.0.0.1 PORT=3306 NODE_NAME=`hostname` SERVER_ID=1 BASEDIR=$MYSQL_HOME DATADIR=$BASEDIR/data TMPDIR=$BASEDIR/tmp LOGDIR=$BASEDIR/log ETCDIR=$BASEDIR/etc SOCKET_FILE=$TMPDIR/mysql.sock PID_FILE=$TMPDIR/${NODE_NAME}.pid LOG_ERROR_FILE=$LOGDIR/${NODE_NAME}.log GENERAL_LOG_FILE=$LOGDIR/${NODE_NAME}_g..
install mysql(percona) by tarball set limit for max open files # cat /etc/security/limits.conf root soft nofile 65536 root hard nofile 65536 user soft nofile 65536 user hard nofile 65536 적용 후 percona 를 설치하고 운영할 계정을 새로 로그인 한다. set env # mysql export MYSQL_HOME=$HOME/mysql export PATH=$PATH:$MYSQL_HOME/bin download package & link # connecthttps://www.percona.com/downloads/Percona-Server-LATEST/ # download Percona-Server-8.0.20-11-..
MySQL partition 관리 파티션 테이블 생성하기 drop table if exists test.T1; CREATE TABLE `T1` ( `symbol` varchar(45) NOT NULL, `unix_time` int(11) NOT NULL, PRIMARY KEY (`symbol`,`unix_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='partition table sample' PARTITION BY RANGE ( unix_time ) ( PARTITION p202001 VALUES LESS THAN ( 1577836800 ), PARTITION p202002 VALUES LESS THAN ( 1580515200 ), PARTITION p999999 VALUES LESS..
InnoDB on-disk structures Tables tablespace > segment ( unix file ) > extent > page Indexes Clusterd Index primary key 와 동의어 이기도 하다. clustered index 가 생성되어 있지 않다면 not null 이면서 unique index 를 pk 처럼 사용한다. auto-increment 를 대용으로 사용할 수 있다. pk, uk index 도 없다면 내부적으로 row id 사용하게 된다. 6 byte order insertion Secondary Indexes clustered index 를 제외한 모든 인덱스를 secondary index 라고 한다. secondary index 의 각 레코드는 clustered index 의 컬럼들을 함께 가지고..
InnoDB Adaptive Hash index 자주 사용되는 칼럼을 해시로 정의하여 b-tree를 타지 않고 바로 데이터에 접근할 수 있는 기능이다. 이름에서 유추할 수 있듯이 내부에서 자동으로 운영된다. 최초 메모리는 buffer pool 의 1/64 대상은 임의로 선정할 수 없다. 사용자는 on/off 만 가능 adaptive hash index 사용하기 set global innodb_adaptive_hash_index = 1; set global innodb_adaptive_hash_index = 0; adaptive hash index 모니터링 adaptive hash index 사용시 주의점 예를 들어 오랫동안 운영되던 테이블이 있는데 이를 운영중에 drop 했다고 가정하자. adaptive hash index 페이지에 drop 대상의 테..
InnoDB change buffer NSERT, UPDATE, DELETE 등 이 secondary index 에 영향을 주게 되는데 해당 페이지가 buffer pool 에 없다면 원칙적으로 바로 disk i/o 가 발생해야 한다. 이는 operation 에 의해 임의적으로 disk i/o 가 발생할 수 있다는 이야기 인데 이런 상황이 성능에 좋지 않기 때문에 change buffer 에 임의로 적용해 두고 시스템이 비교적 한가할때 change buffer 가 full 이 될때 해당 페이지를 select 에 의해 buffer pool 에 캐싱될때 혹은 주지적으로 disk i/o 를 발생시켜 성능을 향상 시키는 역할을 한다. change buffer 크기 change buffer 는 buffer pool 의 25% 정도 차지하고 최고 50%..