/
DDL

DDL

CREATE TABLESPACE


create_tablespace_stmt:

datadisk_list:

data_disk:

data_disk_property:


create_tablespace_stmt ::= 'CREATE TABLESPACE' tablespace_name 'DATADISK' datadisk_list
datadisk_list ::= data_disk ( ',' data_disk )*
data_disk ::= disk_name data_disk_property
data_disk_property ::= '(' 'DISK_PATH' '=' '"' path '"' ( ',' 'PARALLEL_IO' '=' number )? ')'


-- ์˜ˆ์ œ
create tablespace tbs1 datadisk disk1 (disk_path=""); -- $MACHBASE_HOME/dbs/ ์— ์ƒ์„ฑ
create tablespace tbs1 datadisk disk1 (disk_path="tbs1_disk1"); -- $MACHBASE_HOME/dbs/tbs1_disk1 ์— ์ƒ์„ฑ๋˜๋ฉฐ ์ด๋•Œ tbs1_disk1ํด๋”๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.
create tablespace tbs2 datadisk disk1 (disk_path="tbs2_disk1", parallel_io = 5); 
create tablespace tbs1 datadisk disk1 (disk_path="tbs1_disk1", parallel_io = 10), disk2 (disk_path="tbs1_disk2"), disk3 (disk_path="tbs1_disk3");

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_nameDisk ๊ฐ์ฒด์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•œ๋‹ค. ์ถ”ํ›„์— Alter Tablespace๊ตฌ๋ฌธ์„ ํ†ตํ•ด์„œ Disk๊ฐ์ฒด์˜ ์†์„ฑ์„ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
data_disk_propertyDisk์˜ ์†์„ฑ์„ ์ง€์ •ํ•œ๋‹ค.
disk_pathDisk์˜ Directory Path๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์ด Directory๋Š” Create ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ƒ๋Œ€ Path๋กœ Path๋ฅผ ์ง€์ •์‹œ $MACHBASE_HOME/dbs ๊ธฐ์ค€์œผ๋กœ PATH๋ฅผ ์ฐพ๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด PATH='disk1'์ผ ๊ฒฝ์šฐ Disk Path๋ฅผ $MACHBASE_HOME/dbs/disk1์œผ๋กœ ์ธ์‹ํ•œ๋‹ค.
parallel_ioDisk์˜ 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_TABLECREATE TABLE ์‚ฌ์ด์— ์•„๋ฌด๋Ÿฐ ํ‚ค์›Œ๋“œ๋ฅผ ๋„ฃ์ง€ ์•Š์•˜๋‹ค๋ฉด Log Table์ด ์ƒ์„ฑ๋œ๋‹ค.
VOLATILE_TABLE

VOLATILE_TABLE์€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์ž„์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋Š” ์ž„์‹œ ํ…Œ์ด๋ธ”์ด๋ฉฐ ๋กœ๊ทธ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค๋งŒ,

Marbase ์„œ๋ฒ„๊ฐ€ ์ข…๋ฃŒ ๋˜์ž๋งˆ์ž ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

LOOKUP_TABLEVOLATILE_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๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌํ•ญ์— ์ฃผ์˜ํ•œ๋‹ค.

  1. MINMAX Cacheย ๋Š” ํ•ด๋‹น ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ƒ์„ฑํ•˜์ง€ ์•Š์•„๋„ ์ ์šฉ๋œ๋‹ค.

  2. ๋ชจ๋“  ์ปฌ๋Ÿผ์˜ default๋Š” ย MINMAX_CACHE_SIZE๊ฐ€ 10KB๋กœ ์„ค์ •๋˜์žˆ๊ณ  Alter Table ๊ตฌ๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌ ์ ์ •ํ•œ ํฌ๊ธฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์žฌ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

  3. ์ˆจ์–ด์žˆ๋Š” ์ปฌ๋Ÿผ์ธ _arrival_time์€ ๋””ํดํŠธ๋กœ 100MB์ด๋ฉฐ, ์ž๋™์œผ๋กœ MINMAX Cacheย ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  4. VARCHAR ํƒ€์ž…์˜ ๊ฒฝ์šฐ์—๋Š” MINMAX Cacheย ์˜ ๋Œ€์ƒ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ VARCHAR ํƒ€์ž…์„ ๋ช…์‹œ์ ์œผ๋กœ ์บ์‹œ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•˜๋ฉด, ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

  5. ํ•ด๋‹น ํ…Œ์ด๋ธ”์ด ํ•˜๋‚˜ ์ƒ์„ฑ๋  ๋•Œ ํ”„๋กœํผํ‹ฐ์— ์„ค์ •๋œ ย MINMAX_CACHE_SIZEย ๋งŒํผ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋” ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. ํŒŒํ‹ฐ์…˜ ๊ฐœ์ˆ˜๊ฐ€ ๋Š˜์ˆ˜๋ก ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ ์ง„์ ์œผ๋กœ ๋Š˜์–ด๋‚˜ ์œ„์˜ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ๋งŒํผ ๋Š˜์–ด๋‚œ๋‹ค.

  6. ๋งŒ์ผ ํ•ด๋‹น ํ…Œ์ด๋ธ”์— ๋ ˆ์ฝ”๋“œ๊ฐ€ ํ•˜๋‚˜๋„ ๋“ค์–ด์žˆ์ง€ ์•Š์œผ๋ฉด, 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 TableREDBLACK

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๋ฅผ ํ†ตํ•œ ๊ฒ€์ƒ‰ ์‹œย ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ์ด ์กด์žฌํ•œ๋‹ค.

  1. Key๊ฐ€ ์ค‘๋ณต๋œ ๊ฒฝ์šฐ, ํ•œ ๋ฒˆ๋งŒ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— Key ์ €์žฅ์„ ์œ„ํ•œ Disk Space๊ฐ€ ์ ˆ์•ฝ๋œ๋‹ค.

  2. ์—ฌ๋Ÿฌ ๊ฐœ์˜ 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.

์ง€์ •๋œ ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค. ๋‹จ, ํ•ด๋‹น ํ…Œ์ด๋ธ”์„ ๊ฒ€์ƒ‰ ์ค‘์ธ ๋‹ค๋ฅธ ์„ธ์…˜์ด ์กด์žฌํ•  ๊ฒฝ์šฐ์—๋Š” ์—๋Ÿฌ๋ฅผ ๋‚ด๋ฉด์„œ ์‹คํŒจํ•œ๋‹ค.

Related content