Partitioning u 5.5

MySQL Enterprise Server je doneo nekoliko zgodnih novina vezano za partitioning.

Osnovne dve novine su:
1. LIST i RANGE COLUMNS
2. PARTITION MAINTENANCE alati najzad svi rade kako treba

Posto smo o partitioningu kao takvom vec pisali zadrzacu se samo na novostima.

RANGE COLUMNS je prva zgodna novost. U 5.1 smo morali da pisemo ovako:

CREATE TABLE `user`(… `user_employed` DATETIME …)
PARTITION BY RANGE (to_days(`user_employed`))
PARTITION p2008 VALUES LESS THAN (to_days(‘2009-01-01′)),
PARTITION p2009 VALUES LESS THAN (to_days(‘2010-01-01′)),

);

Dok u 5.5 to radi mnogo zgodnije:

CREATE TABLE `user`(… `user_employed` DATETIME …)
PARTITION BY RANGE COLUMNS (`user_employed`)
PARTITION p2008 VALUES LESS THAN (‘2009-01-01′),
PARTITION p2009 VALUES LESS THAN (‘2010-01-01′),

);

Jos je zgodniji LIST COLUMNS koji nam daje mogucnost da particionisemo:

CREATE TABLE `t1`(`id` int, `country` varchar(100),…)
PARTITION BY LIST COLUMNS (`country`)
PARTITION europe VALUES IN (‘Paris’, ‘London’, ‘Belgrade’),
PARTITION africa VALUES IN (‘Capetown’, ‘Cairo’, ‘Abuja’),
PARTITION asia VALUES IN (‘Tokyo’, ‘Hangzhou’, ‘Ankara’),

);

Alatke za maintenance su sve tu i sve rade kako treba (najzad):

• ALTER TABLE … DROP PARTITION
• ALTER TABLE … REORGANIZE PARTITION
• ALTER TABLE … ADD PARTITION
• ALTER TABLE … COALESCE PARTITION
• ALTER TABLE … REBUILD PARTITION
• ALTER TABLE … OPTIMIZE PARTITION
• ALTER TABLE … ANALYZE PARTITION
• ALTER TABLE … REPAIR PARTITION
• ALTER TABLE … CHECK PARTITION
• ALTER TABLE … TRUNCATE PARTITION

A informacije o particijama je moguce izvaditi na “standardne nacine”:

• SHOW CREATE TABLE
• SHOW TABLE STATUS
• INFORMATION_SCHEMA.PARTITIONS

Znacajna novost je “EXPLAIN PARTITIONS SELECT”. Sada je moguce traziti od EXPLAIN-a da navede tacno koje ce particije “pipati” pri izvrsenju upita :)

Ukratko, to je to, evo ga i kraci keynote sa par primera
MySQL, Partitioning

VN:F [1.9.22_1171]
Rating: +6 (from 6 votes)

November 16, 2010 • Tags:  • Posted in: Razno

Leave a Reply