> - innoDB
> - MyISAM
> - Memory
> - Archive
> - CSV
> - Federated
Spider 엔진
은 샤딩기능이 내장된 스토리지 엔진항상 파티셔닝을 진행할 수 있는게 아님 -> unique 컬럼이 index가 존재해야 파티셔닝이 가능
파티셔닝이 항상 좋은 결과를 보장하는 것은 아님
SQL을 효율적으로 짜는 것이 첫번째이고 그 다음에 파티셔닝을 고려해보아야함.
파티션 구성방법
ALTER TABLE `His_Ai` PARTITION BY RANGE( TO_DAYS(HIS_TIME) ) (
PARTITION p20210401 VALUES LESS THAN (TO_DAYS('2021-04-02')),
PARTITION p20210402 VALUES LESS THAN (TO_DAYS('2021-04-03')),
PARTITION p20210403 VALUES LESS THAN (TO_DAYS('2021-04-04')),
PARTITION p20210404 VALUES LESS THAN (TO_DAYS('2021-04-05')),
PARTITION p20210426 VALUES LESS THAN (TO_DAYS('2021-04-27')),
PARTITION p20210426 VALUES LESS THAN (TO_DAYS('2021-04-28')),
PARTITION p20210426 VALUES LESS THAN (TO_DAYS('2021-04-29')),
PARTITION p20210426 VALUES LESS THAN (TO_DAYS('2021-04-30')),
PARTITION future VALUES LESS THAN MAXVALUE
);
# 파티션 항목 조회
SELECT * FROM His_Ai PARTITION (p20210401);
# 현재 데이터베이스 파티션의 정보 확인
SELECT TABLE_SCHEMA, TABLE_NAME, PARTITION_NAME, PARTITION_ORDINAL_POSITION, TABLE_ROWS
FROM INFORMATION_SCHEMA.PARTITIONS
WHERE TABLE_NAME = `His_Ai`;
ALTER TABLE His_Ai DROP PARTITION p20210401;
- 날짜를 기준으로 추가를 하는 경우 스케쥴러에 넣어서 서버를 운영하는 방식
ALTER TABLE `His_Ai` REORGANIZE PARTITION p20210430 INTO (
PARTITION p20210430 VALUES LESS THAN ('2021-05-01') ENGINE = InnoDB,
PARTITION p20210501 VALUES LESS THAN MAXVALUE ENGINE = InnoDB
);
CREATE TABLE contacts (
id serial PRIMARY KEY,
name VARCHAR (100),
phones TEXT[]
);
INSERT INTO contacts (name, phones)
VALUES('홍길동', ARRAY [ '031-132-7890','02-678-9876' ]);
INSERT INTO contacts (name, phones)
VALUES
('일지매', ARRAY [ '02-789-5432' ]),
('김갑환', '{"010-4567-8765", "063-123-1234"}'),
('김형준', '{"063-432-8765", "010-4567-8765"}');
SELECT name, phones FROM contacts;
# 특정 인덱스 조회 가능
SELECT name, phones[2] FROM contacts;
CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] 이름 ] ON [ ONLY ] 테이블이름 [ USING 색인방법 ]
( { 칼럼이름 | ( 표현식 ) } [ COLLATE 문자정렬규칙 ] [ 연산자클래스 ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] )
[ INCLUDE ( 칼럼이름 [, ...] ) ]
[ WITH ( 저장_매개변수 [= 값] [, ... ] ) ]
[ TABLESPACE 테이블스페이스이름 ]
[ WHERE 조건절 ]
참고 사이트 출처