전부 가짜 속지말자





ABS(), CEILING(), DAY(), DAYOFMONTH(), DAYOFWEEK(), DAYOFYEAR(), DATEDIFF(), EXTRACT(), FLOOR(), HOUR(), MICROSECOND(), MINUTE(), MOD(), MONTH(), QUARTER(), SECOND(), TIME_TO_SEC(), TO_DAYS(), WEEKDAY(), YEAR(), YEARWEEK()
범위에 따라 파티션을 설정하는 방법
예) 월단위 파티션을 갖는 테이블 생성
CREATE TABLE `test`.`tab_partition`
(
`seq` int unsigned auto_increment not null,
`regist_dt` datetime not null default current_timestamp,
`contents` varchar(1000),
PRIMARY KEY (`seq`, `regist_dt`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8
PARTITION BY RANGE COLUMNS (regist_dt)
(
PARTITION p201601 VALUES LESS THAN ('2016-02-01 00:00:00'),
PARTITION p201602 VALUES LESS THAN ('2016-03-01 00:00:00'),
PARTITION p201603 VALUES LESS THAN ('2016-04-01 00:00:00'),
PARTITION pmaxvalues VALUES LESS THAN MAXVALUE
);
예) 날짜타입을 갖는 테이블에서 연단위 파티션을 갖는 테이블 생성
CREATE TABLE `test`.`tab_partition`
(
`seq` int unsigned auto_increment not null,
`regist_dt` datetime not null default current_timestamp,
`contents` varchar(1000),
PRIMARY KEY (`seq`, `regist_dt`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8
PARTITION BY RANGE (YEAR(regist_dt))
(
PARTITION p2014 VALUES LESS THAN (2015),
PARTITION p2015 VALUES LESS THAN (2016),
PARTITION p2016 VALUES LESS THAN (2017),
PARTITION pmaxvalues VALUES LESS THAN MAXVALUE
);
목록에 따라 파티션을 설정하는 방법
예)
CREATE TABLE `test`.`tab_partition`
(
`seq` int unsigned auto_increment not null,
`region_cd` varchar(10) not null,
`regist_dt` datetime not null default current_timestamp,
`contents` varchar(1000),
PRIMARY KEY (`seq`, `region_cd`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8
PARTITION BY LIST COLUMNS (`region_cd`)
(
PARTITION p_asia VALUES IN ('KOREA', 'CHINA'),
PARTITION p_europe VALUES IN ('FRANCE', 'ITALIA'),
PARTITION p_america VALUES IN ('CANADA', 'USA'),
PARTITION p_other VALUES IN (NULL)
);
파티션은 필요하지만 파티션할 기간이나 특정 값의 집합을 정의하기 모호할 때 사용하는 파티션 타입이다.
예)
CREATE TABLE `test`.`tab_partition`
(
`seq` int unsigned auto_increment not null,
`regist_dt` datetime not null default current_timestamp,
`contents` varchar(1000),
PRIMARY KEY (`seq`, `regist_dt`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8
PARTITION BY HASH (TO_DAYS(regist_dt))
PARTITIONS 12;
Partition Pruning 이란? 조건에 부합하는 파티션만 선택적으로 사용하게 하는 기능
조인방식 | 설명 |
---|---|
RANGE | =, <>, >, >=, <, <=, IS NULL, BETWEEN, IN 연산자를 사용한 비교/범위 검색 |
REF | PRIMARY KEY 또는 UNIQUE INDEX가 아닌 일반적인 인덱스를 활용한 JOIN |
EQ_REF | PRIMARY KEY 또는 UNIQUE INDEX를 활용한 JOIN |
fallocate -l 8G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab sysctl vm.swappiness=10
add-apt-repository ppa:ondrej/php apt update apt install php8.2-fpm
curl "https://packages.gitlab.com/gpg.key" -o /tmp/omnibus_gitlab_gpg.key sudo apt-key add /tmp/omnibus_gitlab_gpg.key sudo apt update