Blog

MySQL CheatSheet

CheatSheet

# 데이터베이스 생성 CREATE DATABASE TEST1 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 사용자 생성 CREATE USER TEST1; # 데이터베이스에 대한 모든 권한 부여 GRANT ALL PRIVILEGES ON TEST1.* TO 'TEST1'@'localhost' IDENTIFIED BY 'TEST1'; # 테이블 생성 CREATE TABLE `test_table` ( `client_id` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `datetime` datetime NOT NULL, ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci PARTITION BY RANGE(TO_DAYS(`datetime`)) ( PARTITION P20171018 VALUES LESS THAN (TO_DAYS('2017-10-19')), PARTITION P_MAX VALUES LESS THAN (MAXVALUE) ); # 파티션 분할 ALTER TABLE `test_table` REORGANIZE PARTITION P_MAX INTO ( PARTITION P20171025 VALUES LESS THAN (TO_DAYS('2017-10-26')), PARTITION P_MAX VALUES LESS THAN (MAXVALUE) ); # 파티션 삭제 ALTER TABLE test_table DROP PARTITION P20171019 # 기본 테이블에 파티션 적용 ALTER TABLE `test_table` PARTITION BY RANGE(TO_DAYS(`datetime`)) ( PARTITION P20171025 VALUES LESS THAN (TO_DAYS('2017-10-26')), PARTITION P_MAX VALUES LESS THAN (MAXVALUE) ); # 파티션 조회 SELECT PARTITION_ORDINAL_POSITION, PARTITION_NAME, TABLE_ROWS, PARTITION_METHOD FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = 'TEST1' AND TABLE_NAME = 'test_table'; # 인덱스 추가 CREATE INDEX test_table_datetime_ix ON test_table(`datetime`); ALTER TABLE test_table ADD INDEX test_table_datetime_ix (`datetime`); # 인덱스 확인 SHOW INDEX FROM test_table; # 테이블 인코딩 설정 ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
SQL
복사