DDL
CREATE TABLESPACE ๊ตฌ๋ฌธ์ ๋ก๊ทธ Table ๋๋ ๋ก๊ทธ Table์ Index๊ฐ ์ ์ฅ๋ Tablespace๋ฅผ $MACHBASE_HOME/dbs/ ์ ์์ฑํ๋ค.
Tablespace๋ ์ฌ๋ฌ ๊ฐ์ Disk๋ฅผ ๊ฐ์ง ์ ์๋ค. Table๊ณผ Index์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฐ๊ฐ์ Partition File๋ค์ด ์ ์ฅ๋ ๋, Tablespace์ ์ํ Data Disk๋ค์ ๋ถ์ฐ๋์ด ์ ์ฅ๋๋ค.
๋ง์ฝ 2๊ฐ ์ด์์ Disk๋ฅผ ์ฌ์ฉ ์ Index์ Table์ ์ฌ๋ฌ File์ด ๊ฐ Disk์ ๋ถ์ฐ ์ ์ฅ๋๊ณ , ๊ฐ๊ฐ์ Device์์ Parallel ํ๊ฒ IO๊ฐ ์ํ๋์ด Disk ๊ฐ์๊ฐ ๋์ด๋ ์๋ก Disk I/O Throughput ์ด ๋์์ ธ ๋ค๋์ Data๋ฅผ ๋น ๋ฅด๊ฒ Disk์ ์ ์ฅํ ์ ์๋ ์ด์ ์ด ์๋ค.
๋ํ, Table๊ณผ Index์ Tablespace๋ฅผ ๋ณ๋๋ก ์์ฑํ๊ณ ๊ฐ๊ฐ ๋ค๋ฅธ Disk๋ฅผ ์ ์ํ ๊ฒฝ์ฐ, Physical Disk์ ์ฌ๊ตฌ์ฑ ์์ด, Logical ํ๊ฒ Table๊ณผ Index์ I/O๋ฅผ ๋ถ๋ฆฌํ ์ ์๋ค.
DATA DISK
Tablespace์ ์ํ Disk๋ฅผ ์ ์ํ๋ค. ๊ฐ Disk๋ ๋ค์๊ณผ ๊ฐ์ ์์ฑ์ ๊ฐ์ง๋ค.
์์ฑ | ์ค๋ช |
---|---|
disk_name | Disk ๊ฐ์ฒด์ ์ด๋ฆ์ ์ง์ ํ๋ค. ์ถํ์ Alter Tablespace๊ตฌ๋ฌธ์ ํตํด์ Disk๊ฐ์ฒด์ ์์ฑ์ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉํ๋ค. |
data_disk_property | Disk์ ์์ฑ์ ์ง์ ํ๋ค. |
disk_path | Disk์ Directory Path๋ฅผ ์ง์ ํ๋ค. ์ด Directory๋ Create ๋์ด ์์ด์ผ ํ๋ค. ์๋ Path๋ก Path๋ฅผ ์ง์ ์ $MACHBASE_HOME/dbs ๊ธฐ์ค์ผ๋ก PATH๋ฅผ ์ฐพ๋๋ค. ์๋ฅผ ๋ค์ด PATH='disk1'์ผ ๊ฒฝ์ฐ Disk Path๋ฅผ $MACHBASE_HOME/dbs/disk1์ผ๋ก ์ธ์ํ๋ค. |
parallel_io | Disk์ IO Request๋ฅผ Parallelํ๊ฒ ๋ช ๊ฐ๊น์ง ํ์ฉํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ค. (DEF: 3, MIN: 1, MAX: 128) |
CREATE TABLE
create_table_stmt:
column_list:
column_property_list:
table_property_list:
column_type:
auto_del:
create_table_stmt ::= 'CREATE' ( 'LOG' | 'VOLATILE' | 'LOOKUP' )? 'TABLE' table_name '(' column_list ')' autodel? table_property_list? column_list ::= column_name column_type column_property_list? 'PRIMARY KEY'? 'NOT NULL'? ( ',' column_name column_type column_property_list? 'PRIMARY KEY'? 'NOT NULL'? )* column_property_list ::= 'PROPERTY' '(' ( 'PART_PAGE_COUNT' | 'PAGE_VALUE_COUNT' | 'MINMAX_CACHE_SIZE' | 'MAX_CACHE_PART_COUNT' ) '=' value ( ',' ( 'PART_PAGE_COUNT' | 'PAGE_VALUE_COUNT' | 'MINMAX_CACHE_SIZE' | 'MAX_CACHE_PART_COUNT' ) '=' value )* ')' table_property_list ::= ( 'CHECK_FORGERY' | 'TAG_PARTITION_COUNT' ) '=' value column_type ::= 'SHORT' | 'USHORT' | 'INTEGER' | 'UINTEGER' | 'LONG' | 'ULONG' | 'FLOAT' | 'DOUBLE' | 'DATETIME' | 'VARCHAR' '(' size ')' | 'IPV4' | 'IPV6' | 'TEXT' | 'BINARY'
-- 5๊ฐ์ column์ ๊ฐ์ง ctest table์ ๋ง๋ ๋ค. Mach> CREATE TABLE ctest (id INTEGER, name VARCHAR(20), sipv4 IPV4, dipv6 IPV6, comment TEXT); Created successfully.
ํ ์ด๋ธ ์ข ๋ฅ
ํ ์ด๋ธ ์ข ๋ฅ | ์ค๋ช |
---|---|
LOG_TABLE | CREATE TABLE ์ฌ์ด์ ์๋ฌด๋ฐ ํค์๋๋ฅผ ๋ฃ์ง ์์๋ค๋ฉด Log Table์ด ์์ฑ๋๋ค. |
VOLATILE_TABLE | VOLATILE_TABLE์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ ์์ ํ ์ด๋ธ์ด๋ฉฐ ๋ก๊ทธ ํ ์ด๋ธ์ ์กฐ์ธํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ํฅ์์ํต๋๋ค๋ง, Marbase ์๋ฒ๊ฐ ์ข ๋ฃ ๋์๋ง์ ์ฌ๋ผ์ง๋๋ค. |
LOOKUP_TABLE | VOLATILE_TABLE๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก LOOKUP_TABLE์ ๋ฉ๋ชจ๋ฆฌ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํจ์ผ๋ก์จ ๋น ๋ฅธ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ๋ฅผ ์ํ ํ ์ ์์ต๋๋ค. |
ํ ์ด๋ธ ์ปฌ๋ผ
ํ ์ด๋ธ ์ปฌ๋ผ์ ๋ฌธ์์ด์ ๊ทธ๋๋ก ๋ฃ๋ ๊ฒ์ด ๋ณดํต์ด์ง๋ง, ํน์ ๋ฌธ์๋ฅผ ๋ฃ๊ธฐ ์ํด ํ๋ฐ์ดํ (') ๋๋ ์๋ฐ์ดํ (") ๋ก ๊ฐ์ธ์ ๋ฃ์ ์๋ ์๋ค.
Mach> CREATE TABLE special_tbl ( with.dot INTEGER ); [ERR-02010: Syntax error: near token (.dot INTEGER )).] CREATE TABLE special_tbl ( "with.dot" INTEGER ); -- ๊ฐ๋ฅ CREATE TABLE special_tbl ( 'with.dot' INTEGER ); -- ๊ฐ๋ฅ
ํด๋น ์ปฌ๋ผ์ SELECT ์ฟผ๋ฆฌ๋ฅผ ํตํด ์กฐํํ ๋๋ ํ๋ฐ์ดํ ๋๋ ์๋ฐ์ดํ๋ก ๊ฐ์ธ์ผ ํ๋๋ฐ, ๋ ๋ฐฉ๋ฒ์ ์ฐจ์ด๊ฐ ์กด์ฌํ๋ค.
- ํ๋ฐ์ดํ๋ก ๊ฐ์ธ๊ฒ ๋๋ฉด, ์ปฌ๋ผ์ด ์๋ String Literal ๋ก ์ทจ๊ธ๋๋ค.
- ์๋ฐ์ดํ๋ก ๊ฐ์ธ๊ฒ ๋๋ฉด, SELECT ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ปฌ๋ผ์ ์ด๋ฆ ๊ทธ๋๋ก ์ถ๋ ฅ๋๋ค.
Mach> SELECT 'with.dot' FROM special_tbl; 'with.dot' -------------- [0] row(s) selected. Mach> SELECT "with.dot" FROM special_tbl; with.dot -------------- [0] row(s) selected.
ํ ์ด๋ธ ํ๋กํผํฐ(Table Property)
Table์ ๋ํ ์์ฑ์ ์ง์ ํ๋ค.
ํ๋กํผํฐ ์ด๋ฆ | ์ฌ์ฉ ๊ฐ๋ฅํ ํ ์ด๋ธ ์ข ๋ฅ |
---|---|
CHECK_FORGERY | LOG TABLE |
CHECK_FORGERY(Default:0)
Disk Column Table์ ๋ํด์๋ง ์ง์๋๋ ์์ฑ์ผ๋ก Append๋ ๋ฐ์ดํฐ๊ฐ ์ดํ์ ์ ์์ ์ผ๋ก ๋ณ๊ฒฝ์ด ๋์์ ๊ฒฝ์ฐ, Data์ ๋ณ๊ฒฝ ์ฌ๋ถ๋ฅผ Check ํ ์ ์๋๋ก ํ๋ค. Check๋ย ALTER TABLE CHECK FORGERY RESULTFILEย ๊ตฌ๋ฌธ์ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋ค.
์ปฌ๋ผ ํ๋กํผํฐ(Column Property)
Column์ ๋ํ ์์ฑ์ ์ง์ ํ๋ค.
ํ๋กํผํฐ ์ด๋ฆ | ์ฌ์ฉ ๊ฐ๋ฅํ ํ ์ด๋ธ ์ข ๋ฅ |
---|---|
PART_PAGE_COUNT | LOG TABLE |
PAGE_VALUE_COUNT | LOG TABLE |
MAX_CACHE_PART_COUNT | LOG TABLE |
MINMAX_CACHE_SIZE | LOG TABLE |
PART_PAGE_COUNT
์ด ํ๋กํผํฐ๋ ํ๋์ ํํฐ์ ์ด ๊ฐ์ง๋ Page์ ๊ฐ์๋ฅผ ๋ํ๋ธ๋ค. ํ๋์ ํํฐ์ ์ด ๊ฐ์ง๋ Value์ ๊ฐ์๋ PART_PAGE_COUNT * PAGE_VALUE_COUNT๊ฐ ๋๋ค.
PAGE_VALUE_COUNT
์ด ํ๋กํผํฐ๋ ํ๋์ Page๊ฐ ๊ฐ์ง๋ Value์ ๊ฐ์๋ฅผ ๋ํ๋ธ๋ค.
MAX_CACHE_PART_COUNT (Default : 0)
์ด ํ๋กํผํฐ๋ ์ฑ๋ฅ ํฅ์์ ์ํ ์บ์ ์์ญ์ ์ค์ ํ๋ ๊ฒ์ด๋ค.
๋งํฌ๋ฒ ์ด์คย ๊ฐ ํํฐ์ ์ ์ ๊ทผํ ๋ ํด๋น ํํฐ์ ์ ๋ฉํ ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ด๊ณ ์๋ ๊ตฌ์กฐ์ฒด๋ฅผ ๋จผ์ ์ฐพ๊ฒ ๋๋๋ฐ, ๋ช ๊ฐ์ ํํฐ์ ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ด๊ณ ์์์ง ๊ฒฐ์ ํ๋ค. ํฌ๋ฉด ํด์๋ก ์ฑ๋ฅ์ ๋์์ด ๋ ๊ฒ์ด๋, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋์ด๋๋ค. ์ต์๊ฐ์ 1 ์ต๋๊ฐ์ 65535์ด๋ค.
MINMAX_CACHE_SIZE (Default : 10240)
์ด ํ๋กํผํฐ๋ ํด๋น Column์ MINMAX๋ฅผ ์ํ ์บ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ผ๋ง๋ ์ฌ์ฉํ ๊ฒ์ธ์ง ์ง์ ํ๋ ๊ฒ์ด๋ค. 0๋ฒ์งธ Hidden Column์ธ _ARRIVAL_TIME์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก 100MB์ผ๋ก ์ง์ ์ด ๋๋ค. ํ์ง๋ง ๋ค๋ฅธ Column๋ค์ ๊ธฐ๋ณธ์ ์ผ๋ก 10KB๋ก ์ง์ ๋์ด ์๋ค. ์ด ํฌ๊ธฐ๋ Table์ ์์ฑ ์ดํ์๋ "ALTER TABLE MODIFY" ๊ตฌ๋ฌธ์ ํตํด์ ์ด ๊ฐ์ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.
NOT NULL Constraint
์ปฌ๋ผ ๊ฐ์ NULL์ ํ์ฉํ์ง ์์ ๊ฒฝ์ฐ NOT NULL์ ์ง์ ํ๊ณ , ํ์ฉํ ๊ฒฝ์ฐ(Default)์๋ ์๋ตํ๋ค.
ํ ์ด๋ธ ์์ฑ ์ดํ์ ์ ์๋ ์ด ์ ์ฝ์กฐ๊ฑด์ ์ญ์ ํ๊ฑฐ๋ ์ถ๊ฐํ๊ธฐ ์ํด์๋ ALTER TABLE MODIFY COLUMN ๋ช ๋ น์ผ๋ก ์ ์ฝ์กฐ๊ฑด์ ๋ณ๊ฒฝํ ์ ์๋ค.
# ์ปฌ๋ผ c1์ not null๋ก, c2๋ not null ์ ์ฝ ์กฐ๊ฑด ์์ด ์์ฑํ๋ค. CREATE TABLE t1(c1 INTEGER NOT NULL, c2 VARCHAR(200));
Pre-defined System Columns
Create Table ๋ฌธ์ ์ด์ฉํ์ฌ ํ ์ด๋ธ์ ์์ฑํ๋ฉด ์์คํ ์ ๋ ๊ฐ์ ์ฌ์ ์ ์๋ ์์คํ ์ปฌ๋ผ์ ์ถ๊ฐ๋ก ์์ฑํ๋ค. _ARRIVAL_TIME ๋ฐ _RID์ปฌ๋ผ์ด๋ค.
_ARRIVAL_TIME ์ปฌ๋ผ์ DATETIME ํ์ ์ ์ปฌ๋ผ์ผ๋ก INSERT ๋ฌธ์ด๋ AppendData๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ ์์ ์ ์์คํ time์ ๊ธฐ์ค์ผ๋ก ์ฝ์ ๋๋ฉฐ, ํด๋น ๊ฐ์ ์์ฑ๋ ๋ ์ฝ๋์ unique key๋ก ์ฌ์ฉ๋ ์ ์๋ค. ์ด ์ปฌ๋ผ์ ๊ฐ์ ์์๊ฐ ๋ณด์ฅ๋๋ ๊ฒฝ์ฐ(๊ณผ๊ฑฐ-ํ์ฌ ์์ผ๋ก) machloader๋ INSERT ๋ฌธ์์ ๊ฐ์ ์ง์ ํ์ฌ ์ฝ์ ํ ์ ์๋ค. DURATION ์กฐ๊ฑด์ ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ๊ฒฝ์ฐ, ์ด ์ปฌ๋ผ์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ค.
_RID ์ปฌ๋ผ์ ํน์ ๋ ์ฝ๋๊ฐ ๊ฐ๋ ์ ์ผํ ๊ฐ์ผ๋ก ์์คํ ์ด ์์ฑํ๋ค. ์ด ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ์ ์ 64bit ์ ์์ด๋ฉฐ, ์ด ์ปฌ๋ผ์ ๋ํด์๋ ์ฌ์ฉ์๊ฐ ๊ฐ์ ์ง์ ํ ์ ์๊ณ ์ธ๋ฑ์ค๋ ์์ฑํ ์ ์๋ค. ๋ฐ์ดํฐ INSERT์์ ์๋์ผ๋ก ์์ฑ๋๋ค. _RID ์ปฌ๋ผ์ ๊ฐ์ผ๋ก ๋ ์ฝ๋๋ฅผ ๊ฒ์ํ ์ ์๋ค.
create volatile table t1111 (i1 integer); Created successfully. Mach> desc t1111; ---------------------------------------------------------------- NAME TYPE LENGTH ---------------------------------------------------------------- _ARRIVAL_TIME datetime 8 I1 integer 4 Mach>insert into t1111 values (1); 1 row(s) inserted. Mach>select _rid from t1111; _rid ----------------------- 0 [1] row(s) inserted. Mach>select i1 from t1111 where _rid = 0; i1 -------------- 1 [1] row(s) selected.
MINMAX Cache ๊ฐ๋
์ผ๋ฐ์ ์ผ๋ก Disk DBMS์์๋ ํน์ ๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ์ฌ ๊ฒ์ํ ๊ฒฝ์ฐ ํด๋น ์ธ๋ฑ์ค๊ฐ ํฌํจ๋ ๋์คํฌ ์์ญ์ ๋ํด ์ ๊ทผํ๊ณ , ํด๋น ๊ฐ์ด ํฌํจ๋ ์ต์ข ๋์คํฌ ํ์ด์ง๋ฅผ ์ฐพ์๊ฐ๋๋ก ๊ตฌํ๋์ด ์๋ค.
๋ฐ๋ฉด, ๋งํฌ๋ฒ ์ด์ค๋ย ์๊ณ์ด ์ ๋ณด๋ฅผ ์ ์งํ๊ธฐ ์ํด ์๊ฐ์์ผ๋ก ํํฐ์ ๋์ด์๋ ๊ตฌ์กฐ์ด๋ฉฐ, ์ด๊ฒ์ ํน์ ํ ํ๋์ ์ธ๋ฑ์ค ์ ๋ณด๊ฐ ์๊ฐ์์ผ๋ก ์กฐ๊ฐ์กฐ๊ฐ์ ํ์ผ๋ก ๋๋์ด์ ธ ์๋ค๋ ์๋ฏธ์ด๋ค. ๋ฐ๋ผ์, ๋งํฌ๋ฒ ์ด์ค์ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ ๋๋ ์ด๋ฌํ ํํฐ์ ์ผ๋ก ์กฐ๊ฐ๋ ์๋ ์ธ๋ฑ์ค ํ์ผ์ ์์ฐจ์ ์ผ๋ก ๊ฒ์ํ๋ค.
๋ง์ผ ๊ฒ์ํด์ผ ํ ๋์ ๋ฐ์ดํฐ์ ๋ฒ์๊ฐ 1000๊ฐ์ ํํฐ์ ์ผ๋ก ๋๋์ด์ ธ ์๋ค๋ฉด 1000๋ฒ์ ํ์ผ์ ๋งค๋ฒ ์ด์ด์ ๊ฒ์ํด์ผ ํ๋ค๋ ์๋ฏธ์ด๋ค. ๋น๋ก ํจ์จ์ ์ธ ์ปฌ๋ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ก ์ค๊ณ๋์ด ์๊ธด ํ๋, ์ด๋ฌํ I/O ๋น์ฉ์ด ์ธ๋ฑ์ค ํํฐ์ ๊ฐ์์ ํฌ๊ธฐ์ ๋น๋กํ๊ธฐ ๋๋ฌธ์ ๊ทธ ์ฑ๋ฅ์ ํฅ์ํ๊ธฐย ์ํ ๋ฐฉ๋ฒ์ด MINMAX_CACHE ๊ตฌ์กฐ์ด๋ค.
์ด MINMAX_CACHE๋ ํด๋น ํํฐ์ ์ ์ธ๋ฑ์ค ํ์ผ ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ด๊ณ ์๋ ๊ตฌ์กฐ์ฒด๋ก์ ํด๋น ์ปฌ๋ผ์ ์ต์ ๋ฐ ์ต๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํ๋ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ค. ์ด๋ฐ ๊ตฌ์กฐ๋ฅผ ์ ์งํจ์ผ๋ก์จ ํน์ ๊ฐ์ด ํฌํจ๋ ํํฐ์ ์ ๊ฒ์ํ ๊ฒฝ์ฐ ๊ทธ ๊ฐ์ด ํด๋น ์ธ๋ฑ์ค์ ์ต์๊ฐ ๋ณด๋ค ์๊ฑฐ๋ ์ต๋ ๊ฐ๋ณด๋ค ํด ๊ฒฝ์ฐ์๋ ์์ ํด๋น ํํฐ์ ์ ๊ฑด๋๋ธ ์ ์๊ธฐ ๋๋ฌธ์ ๊ณ ์ฑ๋ฅ์ ๋ฐ์ดํฐ ๋ถ์์ด ๊ฐ๋ฅํด์ง๋ค.
์์ ๊ทธ๋ฆผ์์ ๋ณผ ์ ์๋ฏ์ด 85๋ผ๋ ๊ฐ์ ์ฐพ๊ธฐ ์ํด์ 5๊ฐ์ ํํฐ์ ์ค์์ MIN/MAX์ ํฌํจ๋ 1๋ฒ๊ณผ 5๋ฒ ํํฐ์ ๋ง์ ์ค์ ๋ก ๊ฒ์ํ๊ฒ ๋๋ฉฐ, 2, 3, 4 ๋ฒ ํํฐ์ ์ ์์ ๊ฑด๋๋ฐ๋ ๋ชจ์ต์ ๋ณผ ์ ์๋ค.
MINMAX Cache ์ปฌ๋ผ
ํ ์ด๋ธ ์์ฑ ์์ ํน์ ์ปฌ๋ผ์ ๋ํด MINMAX Cache๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ ์ ์๋ค.
๋ง์ผ ์ด ์ปฌ๋ผ์ด minmax_cache_size๊ฐ 0์ด ์๋ ๊ฐ์ผ๋ก ์ค์ ๋์์ผ๋ฉด, ํด๋น ์ปฌ๋ผ์ ์ธ๋ฑ์ค ๊ฒ์ ์ MINMAX Cache๊ฐ ๋์ํ๊ฒ ๋๋ฉฐ, MINMAX_CACHE_SIZE
ย = 0์ผ ๊ฒฝ์ฐ์๋ ๋์ํ์ง ์๋๋ค.
์ด๋ฐ MINMAX Cache๋ฅผ ์ฌ์ฉํ ๋ ๋ค์๊ณผ ๊ฐ์ ์ฌํญ์ ์ฃผ์ํ๋ค.
MINMAX Cacheย ๋ ํด๋น ์ปฌ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ๋ช ์์ ์ผ๋ก ์์ฑํ์ง ์์๋ ์ ์ฉ๋๋ค.
๋ชจ๋ ์ปฌ๋ผ์ default๋ ย
MINMAX_CACHE_SIZE
๊ฐ 10KB๋ก ์ค์ ๋์๊ณ Alter Table ๊ตฌ๋ฌธ์ ํ์ฉํ์ฌ ์ ์ ํ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ฌ์ค์ ํ ์ ์๋ค.์จ์ด์๋ ์ปฌ๋ผ์ธ _arrival_time์ ๋ํดํธ๋ก 100MB์ด๋ฉฐ, ์๋์ผ๋ก MINMAX Cacheย ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
VARCHAR ํ์ ์ ๊ฒฝ์ฐ์๋ MINMAX Cacheย ์ ๋์์ด ๋์ง ์๋๋ค. ๋ฐ๋ผ์ VARCHAR ํ์ ์ ๋ช ์์ ์ผ๋ก ์บ์ ์ฌ์ฉ ์ฌ๋ถ๋ฅผ ์ง์ ํ๋ฉด, ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
ํด๋น ํ ์ด๋ธ์ด ํ๋ ์์ฑ๋ ๋ ํ๋กํผํฐ์ ์ค์ ๋ ย
MINMAX_CACHE_SIZE
ย ๋งํผ ์ต๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ ์ฌ์ฉ๋ ์ ์๋ค. ํํฐ์ ๊ฐ์๊ฐ ๋์๋ก ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ์ง์ ์ผ๋ก ๋์ด๋ ์์ ์ต๋ ๋ฉ๋ชจ๋ฆฌ๋งํผ ๋์ด๋๋ค.๋ง์ผ ํด๋น ํ ์ด๋ธ์ ๋ ์ฝ๋๊ฐ ํ๋๋ ๋ค์ด์์ง ์์ผ๋ฉด, MINMAXย Cacheย ๋ฉ๋ชจ๋ฆฌ๋ ์ ํ ํ ๋น๋์ง ์๋๋ค.
์๋๋ ์ค์ MINMAX๋ฅผ ํ์ฉํ ํ ์ด๋ธ ์์ฑ ์๋ฅผ ๋ํ๋ธ๋ค.
-- VARCHAR์ ๋ํ MINMAX_CACHE_SIZE = 0์ ์๋ฏธ์์ผ๋ก ํ์ฉ๋๋ค. CREATE TABLE ctest (id INTEGER, name VARCHAR(100) PROPERTY(MINMAX_CACHE_SIZE = 0)); Created successfully. Mach> -- id ์ปฌ๋ผ์ ์บ์๊ฐ ์ ์ฉ๋์๋ค. CREATE TABLE ctest2 (id INTEGER PROPERTY(MINMAX_CACHE_SIZE = 10240), name VARCHAR(100) PROPERTY(MINMAX_CACHE_SIZE = 0)); Created successfully. Mach> -- id1, id2, id3 ์ปฌ๋ผ์ ์ ์ฉ๋์๋ค. CREATE TABLE ctest3 (id1 INTEGER PROPERTY(MINMAX_CACHE_SIZE = 10240), name VARCHAR(100) PROPERTY(MINMAX_CACHE_SIZE = 0), id2 LONG PROPERTY(MINMAX_CACHE_SIZE = 1024), id3 IPV4 PROPERTY(MINMAX_CACHE_SIZE = 1024), id4 SHORT); Created successfully. Mach> -- Column๋จ์๋ก MINMAX_CACHE_SIZE๊ฐ ์ง์ ๋๊ฑฐ๋, 0์ผ๋ก ์ค์ ๋์๋ค. CREATE TABLE ctest4 (id1 INTEGER PROPERTY(MINMAX_CACHE_SIZE=10240), name VARCHAR(100) PROPERTY(MINMAX_CACHE_SIZE=0), id2 LONG PROPERTY(MINMAX_CACHE_SIZE=10240), id3 IPV4 PROPERTY(MINMAX_CACHE_SIZE=0), id4 SHORT); Created successfully. Mach>
๊ธฐ๋ณธ ํค(Primary Key)
Volatile/Lookup ํ ์ด๋ธ์ ์ปฌ๋ผ์ ๋ถ์ฌํ ์ ์๋ ์ ์ฝ ์ฌํญ์ผ๋ก, ํด๋น ์ปฌ๋ผ์ ๊ฐ์ด ์ค๋ณต๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ค. Volatile/Lookup ํ ์ด๋ธ์ด ํญ์ ๊ธฐ๋ณธ ํค๋ฅผ ๊ฐ์ง๊ณ ์์ ํ์๋ ์์ผ๋, ๊ธฐ๋ณธ ํค๊ฐ ์์ผ๋ฉดย INSERT ON DUPLICATE KEY UPDATEย ๊ตฌ๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค.
๊ธฐ๋ณธ ํค๋ฅผ ๋ถ์ฌํ๋ฉด, ๊ธฐ๋ณธ ํค์ ๋์๋๋ ๋ ๋-๋ธ๋ ํธ๋ฆฌ ์ธ๋ฑ์ค๊ฐ ์์ฑ๋๋ค.
AUTO_DEL ์ (5.5 ์ดํ ๋ฒ์ ์์ ์ง์)
๋ฐ์ดํฐ์ ์์ ์ ํํ์ฌ ๋์คํฌ ์ ์ฅ ๊ณต๊ฐ์ ์ ์งํ ์ ์๋ค. Log ํ ์ด๋ธ์ ๋ํด์๋ง ์ง์ํ๋ฉฐ, CREATE TABLE๋ฌธ์์ Table property๋ฅผ ์ง์ ํ๊ธฐ ์ ์ AUTO_DEL์ ์ ์ด์ฉํ์ฌ ์ค์ ํ๋ค. AUTO_DEL์ ์ ์ ์ฅ ์๊ฐ ๊ธฐ์ค ํน์ ๋ ์ฝ๋ ์ ๊ธฐ์ค์ผ๋ก ์ค์ ํ ์ ์๋ค.
CREATE TABLE t1 (c1 INT) KEEP 30 DAY AFTER APPEND INTERVAL 5 SECOND;
์ ์์ ๋ ์๋ ์ญ์ ๊ฐ ์ํ๋ ์ดํ 5์ด๊ฐ ์ง๋๊ณ ์ถ๊ฐ ์ ๋ ฅ์ด ์๋ ๊ฒฝ์ฐ, ์ ๋ ฅ๋์ง 30์ผ์ด ์ง๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค. interval๋ก ์ง์ ๋ ๊ธฐ๊ฐ์ด ๊ธธ๋ฉด ์๋ delete๊ฐ ์ํ๋๋ ์๊ฐ์ด ๊ธธ์ด์ ธ์ ์ ๋ ฅ์ ์ํฅ์ ๋ผ์น ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฉฐ, ๋๋ฌด ์งง์ผ๋ฉด ์์คํ ์ฑ๋ฅ์ ์ ์ฒด์ ์ผ๋ก ์ํฅ์ ์ค ์ ์๋ค.
์๋์ ์์ ๋ ๋ณด์กดํ ๋ฐ์ดํฐ์ ๊ฑด ์๋ก ์๋ ์ญ์ ๊ธฐ๋ฅ์ ์ง์ ํ๋ ์์ด๋ค.
CREATE TABLE t1 (c1 INT) KEEP 3 RECORD AFTER APPEND INTERVAL 5 RECORD;
์ ๋ ฅ ๋ฐ์ดํฐ 5๊ฑด ๋ง๋ค ํด๋น ํ ์ด๋ธ์ ๋ ์ฝ๋์ ์๋ฅผ ๊ฒ์ฌํ์ฌ 3๊ฑด ์ด์์ด๋ฉด 3๊ฑด๋ง ๋จ๊ธฐ๋๋ก ์๋ ์ญ์ ๋ฅผ ์ํํ๋ค.
CREATE TAG TABLE
create_tag_table_stmt:
tag_column_list:
create_tag_table_stmt ::= 'CREATE' 'TAGDATA' 'TABLE' table_name '(' tag_column_list ( 'metadata' '(' column_list ')' )? ')' tag_column_list ::= column_name column_type column_property_list? 'PRIMARY KEY'? 'BASETIME'? 'SUMMARIZED'? 'NOT NULL'? ( ',' column_name column_typecolumn_property_list? 'PRIMARY KEY'? 'BASETIME'? 'SUMMARIZED'? 'NOT NULL'? )*
ํ๊ทธ ํ ์ด๋ธ ์์ฑ์ ๋ฐ๋์ primary key, basetime, summarized ๊ฐ ๋ค์ด๊ฐ์ผ ํ๋ค.
--์์ CREATE TAGDATA TABLE tag (name varchar(20) primary key, time datetime basetime, value double summarized); CREATE TAGDATA TABLE tag (name varchar(20) primary key, int_column int, time datetime basetime, value double summarized, value2 float); CREATE TAGDATA TABLE tag (name varchar(20) primary key, time datetime basetime, value double summarized, value2 float) METADATA (i1 int);
CREATE INDEX
create_index_stmt:
index_type:
table_space:
index_property_list:
create_index_stmt ::= 'CREATE' 'INDEX' index_name 'ON' table_name '(' column_name ')' index_type? table_space? index_property_list? index_type ::= 'INDEX_TYPE' ( 'KEYWORD' | 'BITMAP' | 'REDBLACK' ) table_space ::= 'TABLESPACE' table_space_name index_property_list ::= ( 'MAX_LEVEL' | 'PAGE_SIZE' | 'BLOOM_FILTER' | 'BITMAP_ENCODE' | 'PART_VALUE_COUNT' ) '=' value
Index Type
์์ฑํ Index Type์ ์ง์ ํ๋ค. Keyword Index๊ฐ ์๋ ๊ฒฝ์ฐ Index Type์ ์ง์ ํ์ง ์์ผ๋ฉด Table Type์ ๋ฐ๋ผ์ Default Index Type์ผ๋ก Index๊ฐ ์์ฑ๋๋ค.
Table Type | Default Index Type |
---|---|
Volatile Table | REDBLACK |
Lookup Table | REDBLACK |
Log Table | LSM |
KEYWORD Index
ํ ์คํธ ๊ฒ์์ ์ํ ์ธ๋ฑ์ค๋ก์จ ๋ก๊ทธ ํ ์ด๋ธ์ varchar์ text ์ปฌ๋ผ์๋ง ์์ฑ ๊ฐ๋ฅํ๋ฉฐ, ๋จ์ผ ์ปฌ๋ผ์ ๋ํด์๋ง ์์ฑํ ์ ์๋ค.
LSM Index
LSM(Log Structure Merge) Index๋ก Big Data์ ์ ์ฅ ๋ฐ ๊ฒ์์ ์ต์ ํ๋ Index์ด๋ค. LSM Index๋ค์ Partition๋ค์ Level ๋ณ๋ก ์ ์ง๋๊ณ ํ์ Level์ Partition๋ค์ด Merge๋์ด ์์ Level๋ก ์ด๋ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ Level์ Partition ์์ฑ์ ์ฌ์ฉ๋ ํ์ Partition๋ค์ ์ญ์ ๋๋ค.
์ด๋ฌํ Index Level Partition Building์ Background Thread ์ ์ํด์ ์ํ๋๋ค. ์์ Level Partition์ ํ์ Level์ Partition ๋ค์ด Merge๋์ด ํ๋์ Partition์ผ๋ก ์์ฑ๋๊ธฐ ๋๋ฌธ์ Index๋ฅผ ํตํ ๊ฒ์ ์ย ๋ค์๊ณผ ๊ฐ์ ์ฅ์ ์ด ์กด์ฌํ๋ค.
Key๊ฐ ์ค๋ณต๋ ๊ฒฝ์ฐ, ํ ๋ฒ๋ง ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ Key ์ ์ฅ์ ์ํ Disk Space๊ฐ ์ ์ฝ๋๋ค.
์ฌ๋ฌ ๊ฐ์ Partition์ ๋ํ Searching๋ณด๋ค ํ๋์ Index Partition์ ๋ํ ๊ฒ์ ์ File Open ๋ฐ Close ๋น์ฉ์ด ์ค์ด๋ค๊ณ , ์ ๊ทผํ๋ Index Page์ ๊ฐ์ ๋ํ ์ค์ด๋ ๋ค.
LSM Index Property
ํญ๋ชฉ | ์ค๋ช |
---|---|
MAX_LEVEL (DEFAULT = 3, MIN = 0, MAX = 3 ) | LSM Index์ ์ต๋ Level๋ก์ ํ์ฌ 3์ด ์ต๋๊ฐ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋์ Partition์ ์ต๋ Record ๊ฑด์๋ 2์ต๊ฑด์ ์ด๊ณผํ ์ ์๋ค. ๊ฐ Level์ Partition ํฌ๊ธฐ๋ ์ด์ Partition์ Value ๊ฐ์ * 10์ด๋ค. ์๋ฅผ ๋ค๋ฉด MAX_LEVEL = 3, PART_VALUE_COUNT๊ฐ 100,000 ์ด๋ฉด Level 0 = 100,000, Level 1 = 1,000,0000, Level 2 = 10,000,000, Level 3 = 100,000,000 ์ด๋ค. ๋ง์ฝ ๋ง์ง๋ง Level์ Partition Size๊ฐ 2์ต๊ฑด์ ์ด๊ณผํ๋ฉด Index ์์ฑ์ด ์คํจํ๋ค. |
PAGE_SIZE (DEFAULT = 512 * 1024, MIN = 32 * 1024, MAX = 1 * 1024 * 1024) | Index์ Key Value์ Bitmap ๊ฐ์ด ์ ์ฅ๋๋ Page์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๋ค. Default๋ 512K์ด๋ค. |
BLOOM_FILTER (DEFAULT = 1, DISABLE = 0, ENABLE(DEFAULT) = non_zero_integer) | ์ธ๋ฑ์ค์ Bloom filter๋ฅผ ์ค์ ํ ๊ฒ์ธ์ง ์๋์ง๋ฅผ ์ค์ ํ๋ค. Bloom filter๋ฅผ ์ค์ ํ๋ฉด ์ธ๋ฑ์ค์ ์กด์ฌํ์ง ์๋ ๊ฐ์ ๋น ๋ฅด๊ฒ ๊ฒ์ํ ์ ์์ง๋ง ์ธ๋ฑ์ค ์์ฑ์ ์์๋๋ ์๊ฐ์ด ์ฆ๊ฐํ๋ค. Range ์กฐ๊ฑด๋ง์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, Bloom filter๋ ์ด์ฉํ ์ ์์ผ๋ฏ๋ก ์์ฑํ ํ์๋ ์๋ค. Bloom filter๋ฅผ ์์ฑํ์ง ์์ ๊ฒฝ์ฐ, BLOOM_FILTER = 0์ผ๋ก ์ค์ ํด์ผ ํ๋ค. |
BITMAP_ENCODE (DEFAULT = EQUAL, RANGE) | ์ธ๋ฑ์ค์ Bitmap ํ์ ์ ์ค์ ํ๋ค. BITMAP_ENCODE=EQUAL(๊ธฐ๋ณธ๊ฐ)์ ๊ฒฝ์ฐ ํค๊ฐ๊ณผ ๊ฐ์ ๊ฐ์ ๋ํ bitmap์ ์์ฑํ๊ณ BITMAP=RANGE์ธ ๊ฒฝ์ฐ ํค๊ฐ์ range์ ๋ฐ๋ฅธ bitmap์ ์์ฑํ๋ค. ์ง์ ์กฐ๊ฑด์ผ๋ก = ์ ์ฃผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ BITMAP_ENCODE=EQUAL๋ก, ํน์ ๋ฒ์๊ฐ์ ์ง์ ์กฐ๊ฑด์ผ๋ก ์ฃผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ BITMAP_ENCODE=RANGE๋ก ์ค์ ํ๋ ํธ์ด ์ข๋ค. BITMAP=RANGE์ธ ๊ฒฝ์ฐ ์์ฑ ๋น์ฉ์ EQUAL์ ๋นํด์ ์ฝ๊ฐ ์ฆ๊ฐํ๋ค. |
BITMAP ์ธ๋ฑ์ค
๋ฐ์ดํฐ ๋ถ์์ ์ํ ์ธ๋ฑ์ค๋ก์, ๋ก๊ทธ ํ ์ด๋ธ์๋ง ์์ฑ ๊ฐ๋ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ varchar, text, binary๋ฅผ ์ ์ธํ ๋ชจ๋ ์ปฌ๋ผ์ ์์ฑ ๊ฐ๋ฅํ๋ฉฐ, ๋จ์ผ ์ปฌ๋ผ์ ๋ํด์๋ง ์์ฑํ ์ ์๋ค.
RED-BLACK ์ธ๋ฑ์ค
์ค์๊ฐ ๋ฐ์ดํฐ ๊ฒ์์ ์ํ ๋ฉ๋ชจ๋ฆฌ ์ธ๋ฑ์ค๋ก์, Volatile/Lookup ํ ์ด๋ธ์๋ง ์์ฑ ๊ฐ๋ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ํ ์ด๋ธ์ ๋ชจ๋ ์ปฌ๋ผ์ ์์ฑ ๊ฐ๋ฅํ๋ฉฐ ๋จ์ผ ์ปฌ๋ผ์ ๋ํด์๋ง ์์ฑํ ์ ์๋ค.
Index Property
LSM Index ์์ย ์ ์ฉํ ์ ์๋ Property ๋ ๋ค์๊ณผ ๊ฐ๋ค.
PART_VALUE_COUNT
Index์ Partition์ ์ ์ฅ๋๋ Row ๊ฐ์๋ฅผ ๋ํ๋ธ๋ค.
--์์ -- c1 ์ปฌ๋ผ์ index๊ฐ ์ ์ฉ๋์๋ค. CREATE INDEX index1 on table1 ( c1 ) -- varchar type์ var_column์ keyword index๊ฐ ์ ์ฉ๋๊ณ page_size์ ๋จ์๋ 100000๊ฐ ๋์๋ค. CREATE INDEX index2 on table1 (var_column) INDEX_TYPE KEYWORD PAGE_SIZE=100000;
DROP TABLESPACE
drop_table_stmt:
drop_table_stmt ::= 'DROP TABLESPACE' tablespace_name
์ง์ ๋ Tablespace๋ฅผ ์ญ์ ํ๋ค. ํ์ง๋ง Tablespace์ ์์ฑ๋ ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ, ์ญ์ ๊ฐ ์คํจํ๋ค.
--์์ DROP TABLESPACE TablespaceName;
DROP TABLE
drop_table_stmt:
drop_table_stmt ::= 'DROP TABLE' table_name
์ง์ ๋ ํ ์ด๋ธ์ ์ญ์ ํ๋ค. ๋จ, ํด๋น ํ ์ด๋ธ์ ๊ฒ์ ์ค์ธ ๋ค๋ฅธ ์ธ์ ์ด ์กด์ฌํ ๊ฒฝ์ฐ์๋ ์๋ฌ๋ฅผ ๋ด๋ฉด์ ์คํจํ๋ค.
--์์ DROP TABLE TableName;
DROP INDEX
drop_index_stmt:
drop_index_stmt ::= 'DROP INDEX'ย index_name
์ง์ ๋ ์ธ๋ฑ์ค๋ฅผ ์ญ์ ํ๋ค. ๋จ, ํด๋น ํ ์ด๋ธ์ ๊ฒ์ ์ค์ธ ๋ค๋ฅธ ์ธ์ ์ด ์กด์ฌํ ๊ฒฝ์ฐ์๋ ์๋ฌ๋ฅผ ๋ด๋ฉด์ ์คํจํ๋ค.
--์์ DROP INDEX IndexName;
ALTER TABLESPACE
ALTER TABLESPACE ๊ตฌ๋ฌธ์ ์ง์ ๋ Tablespace์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋ณ๊ฒฝํ๋๋ฐ ์ฌ์ฉ๋๋ค.
ALTER TABLESPACE MODIFY DATADISK
์ด ๊ตฌ๋ฌธ์ Tablespace์ DATADISK์ ์์ฑ์ ๋ณ๊ฒฝํ๋๋ฐ ์ฌ์ฉ๋๋ค.
alter_tablespace_stmt:
alter_tablespace_stmt ::= 'ALTER TABLESPACE' table_name 'MODIFY DATADISK' disk_name 'SET' 'PARALLEL_IO' '=' value
-- ์์ ALTER TABLESPACE tbs1 MODIFY DATADISK disk1 SET PARALLEL_IO = 10;
ALTER TABLE
ALTER TABLE ๊ตฌ๋ฌธ์ ์ง์ ๋ ํ ์ด๋ธ์ ์คํค๋ง ์ ๋ณด๋ฅผ ๋ณ๊ฒฝ์ํค๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉ๋๋ฉฐ Log Table ๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
ALTER TABLE SET
์ด ๊ตฌ๋ฌธ์ Table์ Property๋ฅผ ๋ณ๊ฒฝํ๋ ๊ตฌ๋ฌธ์ด๋ค. ํ์ฌ ๋์ ์ผ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅํ Property๋ ์๋ค.
ALTER TABLE ADD COLUMN
alter_table_add_stmt:
alter_table_add_stmt ::= 'ALTER TABLE' table_name 'ADD COLUMN' '(' column_name column_type ( 'DEFAULT' value )? ')'
์ด ๊ตฌ๋ฌธ์ ํ ์ด๋ธ์ ํน์ ์ปฌ๋ผ์ ์ค์๊ฐ์ผ๋ก ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ด๋ค. ์ปฌ๋ผ์ ์ด๋ฆ๊ณผ ํ์ ์ ์ถ๊ฐํ๊ณ , DEFAULT ๊ตฌ๋ฌธ์ ํตํด ๊ธฐ๋ณธ ๋ฐ์ดํฐ ๊ฐ์ ์ค์ ํ ์ ์๋ค.
-- ์์ -1 alter table atest2 add column (id4 float); -- ์์ -2 alter table atest2 add column (id6 double default 5); alter table atest2 add column (id7 ipv4 default '192.168.0.1'); alter table atest2 add column (id8 varchar(4) default 'hello');
ALTER TABLE DROP COLUMN
alter_table_drop_stmt:
alter_table_drop_stmt ::= 'ALTER TABLE' table_name 'DROP COLUMN' '(' column_name ')'
์ด ๊ตฌ๋ฌธ์ ํ ์ด๋ธ์ ํน์ ์ปฌ๋ผ์ ์ค์๊ฐ์ผ๋ก ์ญ์ ํ๋ ๊ธฐ๋ฅ์ด๋ค.
-- ์์ alter table atest2 drop column (id4); alter table atest2 drop column (id8);
ALTER TABLE RENAME COLUMN
alter_table_column_rename_stmt:
alter_table_column_rename_stmt ::= 'ALTER TABLE'ย table_nameย 'RENAME COLUMN'ย old_column_nameย 'TO'ย new_column_name
์ด ๊ตฌ๋ฌธ์ ํ ์ด๋ธ์ ํน์ ์ปฌ๋ผ๋ช ์ ๋ณ๊ฒฝํ๋ ๊ธฐ๋ฅ์ด๋ค.
-- ์์ alter table atest2 rename column id7 to id7_rename;
ALTER TABLE MODIFY COLUMN
alter_table_modify_stmt:
alter_table_modify_stmt ::= 'ALTER TABLE' table_name 'MODIFY COLUMN' ( '(' column_name 'VARCHAR' '(' new_size ')' ')' | column_name ( 'NOT'? 'NULL' | 'SET' 'MINMAX_CACHE_SIZE' '=' value ) )
์ด ๊ตฌ๋ฌธ์ ํ ์ด๋ธ์ ํน์ ์ปฌ๋ผ์ ์์ฑ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด๋ค. ํ์ฌ๋ VARCHAR ํ์ ์ ์ปฌ๋ผ ๊ธธ์ด์ ๊ทธ์ธ ํ์ ์ ๋ํ MINMAX CACHE ์์ฑ๊ณผ NOT NULL ์ ์ฝ์กฐ๊ฑด์ ์์ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
VARCHAR SIZE
์ด ๊ตฌ๋ฌธ์ VARCHAR ํ์ ์ ์ปฌ๋ผ ๊ธธ์ด๋ง ๋ณ๊ฒฝํ๋ ๊ฒ์ ์ง์ํ๋ค. ์ด ๋์์ ๊ธฐ์กด์ ๋ฐ์ดํฐ๋ฅผ ๋ณด์กดํ๊ธฐ ์ํด ๊ทธ ๊ธธ์ด๊ฐ ์ค์ด๋ค ์๋ ์์ผ๋ฉฐ, ์ธ์ ๋ ์ฆ๊ฐํด์ผ ํ๋ค.
ALTER TABLE table_name MODIFY COLUMN (column_name VARCHAR(new_size));
-- ์์ : TABLE ์ด ์ด๋ ๊ฒ ๋ง๋ค์ด์ก๋ค๊ณ ๊ฐ์ ํ์. -- create table atest5 (id integer, name varchar(5), id3 double, id4 float); -- ์๋ฌ ๋ฐ์: ๋ค๋ฅธ ํ์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์. alter table atest5 modify column (id varchar(10)); -- ์๋ฌ ๋ฐ์: VARCHAR ๊ธธ์ด๋ฅผ ๋ ์๊ฒ ํ ์ ์์. alter table atest5 modify column (name varchar(3)); -- ์๋ฌ ๋ฐ์: VARCHAR์ ์ต๋ ํฌ๊ธฐ 32767 ์ด์ ๋์ ์ ์์. alter table atest5 modify column (name varchar(32768)); -- ์ฑ๊ณต alter table atest5 modify column (name varchar(128));
MINMAX_CACHE_SIZE
์ด ๊ตฌ๋ฌธ์ ํน์ ์ปฌ๋ผ์ ๋ํด MINMAX_CACHE_SIZE๋ฅผ ๋ณ๊ฒฝํ๋ค.
ALTER TABLE table_name MODIFY COLUMN column_name SET MINMAX_CACHE_SIZE=value;
-- ์์ : TABLE ์ด ์ด๋ ๊ฒ ๋ง๋ค์ด์ก๋ค๊ณ ๊ฐ์ ํ์. create table atest9 (id integer, name varchar(100)); -- ์๋ฌ: VARCHAR์๋ ์ ์ฉ ์๋จ. alter table atest9 modify column name set minmax_cache_size=0; [ERR-02139 : MINMAX CACHE is not allowed for VARCHAR column(NAME).] -- ๋ณ๊ฒฝ ์ฑ๊ณต alter table atest9 modify column id set minmax_cache_size=10240;
NOT NULL
์ปฌ๋ผ์ NOT NULL ์ ์ฝ ์กฐ๊ฑด์ ์ถ๊ฐํ๋ค. NOT NULL ์ ์ฝ ์กฐ๊ฑด์ ์ถ๊ฐํ ๊ฒฝ์ฐ NULL๊ฐ์ด ์๋ ์ปฌ๋ผ์ ๋ํด์๋ DDL์ฐ์ฐ์ด ์คํจํ๋ค.
๋ง์ฝ ์ปฌ๋ผ์ NULL๊ฐ์ ํ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ์๋ ๋ค์ ์ ์ MODIFY COLUMN NULL ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ๋ค.
ALTER TABLE table_name MODIFY COLUMN column_name NOT NULL;
-- t1.c1์ NOT NULL ์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐํ๋ค. alter table t1 modify column c1 not null;
NULL
NOT NULL ์ ์ฝ์กฐ๊ฑด์ ํด์ ํ๋ค. LSM ์ธ๋ฑ์ค์ min_max ์บ์๋ก ์ธํ ์ฑ๋ฅ ํฅ์์ ์ป์ ์ ์๋ค. NULL ๊ฐ์ ์ ๋ ฅ์ด ๊ฐ๋ฅํด ์ง๋ค.
ALTER TABLE table_name MODIFY COLUMN column_name NULL;
-- t1.c1์ NOT NULL ์ ์ฝ์กฐ๊ฑด์ ํด์ ํ๋ค. alter table t1 modify column c1 null;
ALTER TABLE FLUSH
alter_table_flush_stmt:
alter_table_flush_stmt ::= 'ALTER TABLE' table_name 'FLUSH'
์ง์ ํ table์ ๋ํ ์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ดํฐ ํ์ผ์ ์์ ํ ๋ฐ์๋ ๋ ๊น์ง ๋๊ธฐํ๋ค.
ALTER TABLE FLUSH INDEX
alter_table_flush_index_stmt:
alter_table_flush_index_stmt ::= 'ALTER TABLE' table_name 'FLUSH' 'INDEX' ( index_name | 'ALL' )
์ง์ ๋ ํ ์ด๋ธ์ ์ธ๋ฑ์ค ๋ฐ์ดํฐ๊ฐ ์ธ๋ฑ์ค ํ์ผ์ ์์ ํ ๋ฐ์๋ ๋๊น์ง ๋๊ธฐํ๋ค.
-- bulktable์ ๋ชจ๋ ์ธ๋ฑ์ค์ ๋ํ ๋ฐ์ดํฐ๊ฐ ์ธ๋ฑ์ค ํ์ผ๋ค์ ๋ฐ์๋ ๋ ๊น์ง ๋๊ธฐํ๋ค. alter table bulktable flush index all; -- bulktable์ c1_idx ์ธ๋ฑ์ค์ ๋ฐ์ดํฐ๊ฐ ์ธ๋ฑ์ค ํ์ผ์ ๋ฐ์๋ ๋ ๊น์ง ๋๊ธฐํ๋ค. alter table bulktable flush index c1_idx;
ALTER TABLE CHECK FORGERY RESULT FILE
alter_table_check_forgery_stmt:
alter_table_check_forgery_stmt ::= 'ALTER TABLE' table_name 'CHECK FORGERY RESULTFILE' "'" result_filename "'"
์ง์ ๋ ํ ์ด๋ธ์ ๋ํด Append๋ ์ดํ ๋ณ๊ฒฝ(Forgery)์ด ๋์๋์ง๋ฅผ ํ์ธํ๋ค. Forgery Check๋ Disk Column Table์ ๋ํด์๋ง ์ง์์ด ๋๊ณ , Disk Column Table ๋ํ ์์ฑ์ FORGERY_CHECK ์์ฑ์ 1๋ก ์ค์ ํ์ฌ ์์ฑํด์ผ ํ๋ค. Forgery๊ฐ Detect๋๋ฉดย $MACHBASE_HOME/trcย ๋ฐ์ result_filename์ ํด๋นํ๋ ํ์ผ์ด ์์ฑ๋๊ณ ํด๋น ํ์ผ์ Table์ ์ด๋ ๋ถ๋ถ์ด ๋ณ๊ฒฝ ๋์๋์ง๊ฐ ๊ธฐ๋ก๋์ด ์๋ค.
-- t1 table์ ๋ํด์ forgery check๋ฅผ ์ํํ๋ค. alter table t1 check forgery resultfile 't1_forgery_check';
ALTER TABLE RENAME TO
alter_table_rename_stmt:
alter_table_rename_stmt ::= 'ALTER TABLE' table_name 'RENAME TO' new_name
ํ
์ด๋ธ์ ์ด๋ฆ์ ๋ณ๊ฒฝํ๋ค.
๋ฉํ ํ ์ด๋ธ๋ค์ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์๊ณ , ๋ณ๊ฒฝ๋ ์ด๋ฆ์ $๋ฌธ์๋ ์ฌ์ฉํ ์ ์๋ค. ํ ์ด๋ธ ์ด๋ฆ ๋ณ๊ฒฝ์ log ํ ์ด๋ธ์ ๋ํด์๋ง ๊ฐ๋ฅํ๋ค.
-- user ํ ์ด๋ธ์ ์ด๋ฆ์ employee๋ก ๋ณ๊ฒฝํ๋ค. ALTER TABLE user RENAME TO employee
TRUNCATE TABLE
truncate_table_stmt:
truncate_table_stmt ::= 'TRUNCATE TABLE' table_name
-- ctest ํ ์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค. Mach> truncate table ctest; Truncated successfully.
์ง์ ๋ ํ ์ด๋ธ์ ์กด์ฌํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค. ๋จ, ํด๋น ํ ์ด๋ธ์ ๊ฒ์ ์ค์ธ ๋ค๋ฅธ ์ธ์ ์ด ์กด์ฌํ ๊ฒฝ์ฐ์๋ ์๋ฌ๋ฅผ ๋ด๋ฉด์ ์คํจํ๋ค.