mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-10 16:32:12 +00:00
185 lines
4.2 KiB
SQL
185 lines
4.2 KiB
SQL
DROP TABLE IF EXISTS lwd_test;
|
|
|
|
CREATE TABLE lwd_test
|
|
(
|
|
`id` UInt64,
|
|
`value` String
|
|
)
|
|
ENGINE = MergeTree
|
|
ORDER BY id
|
|
SETTINGS
|
|
vertical_merge_algorithm_min_rows_to_activate = 1,
|
|
vertical_merge_algorithm_min_columns_to_activate = 1,
|
|
min_rows_for_wide_part = 1,
|
|
min_bytes_for_wide_part = 1;
|
|
|
|
|
|
INSERT INTO lwd_test SELECT number AS id, toString(number) AS value FROM numbers(10);
|
|
|
|
SELECT * FROM lwd_test ORDER BY id, value;
|
|
|
|
SELECT name, part_type
|
|
FROM system.parts
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name;
|
|
|
|
|
|
SELECT name, column, type, rows
|
|
FROM system.parts_columns
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name, column;
|
|
|
|
|
|
|
|
SET mutations_sync = 2;
|
|
SET allow_experimental_lightweight_delete = 1;
|
|
|
|
-- delete some rows using LWD
|
|
DELETE FROM lwd_test WHERE (id % 3) = 0;
|
|
|
|
|
|
SELECT * FROM lwd_test ORDER BY id, value;
|
|
|
|
|
|
SELECT name, part_type
|
|
FROM system.parts
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name;
|
|
|
|
|
|
SELECT name, column, type, rows
|
|
FROM system.parts_columns
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name, column;
|
|
|
|
|
|
-- optimize table to physically delete the rows
|
|
OPTIMIZE TABLE lwd_test FINAL;
|
|
|
|
SELECT * FROM lwd_test ORDER BY id, value;
|
|
|
|
|
|
SELECT name, part_type
|
|
FROM system.parts
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name;
|
|
|
|
|
|
SELECT name, column, type, rows
|
|
FROM system.parts_columns
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name, column;
|
|
|
|
|
|
-- delete more rows
|
|
DELETE FROM lwd_test WHERE (id % 2) = 0;
|
|
|
|
|
|
SELECT * FROM lwd_test ORDER BY id, value;
|
|
|
|
|
|
SELECT name, part_type
|
|
FROM system.parts
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name;
|
|
|
|
|
|
SELECT name, column, type, rows
|
|
FROM system.parts_columns
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name, column;
|
|
|
|
|
|
-- add another part that doesn't have deleted rows
|
|
INSERT INTO lwd_test SELECT number AS id, toString(number+100) AS value FROM numbers(10);
|
|
|
|
SELECT * FROM lwd_test ORDER BY id, value;
|
|
|
|
SELECT name, part_type
|
|
FROM system.parts
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name;
|
|
|
|
|
|
SELECT name, column, type, rows
|
|
FROM system.parts_columns
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name, column;
|
|
|
|
|
|
-- optimize table to merge 2 parts together: the 1st has LDW rows and the 2nd doesn't have LWD rows
|
|
-- physically delete the rows
|
|
OPTIMIZE TABLE lwd_test FINAL;
|
|
|
|
SELECT * FROM lwd_test ORDER BY id, value;
|
|
|
|
|
|
SELECT name, part_type
|
|
FROM system.parts
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name;
|
|
|
|
|
|
SELECT name, column, type, rows
|
|
FROM system.parts_columns
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name, column;
|
|
|
|
|
|
-- add another part that doesn't have deleted rows
|
|
INSERT INTO lwd_test SELECT number AS id, toString(number+200) AS value FROM numbers(10);
|
|
|
|
SELECT * FROM lwd_test ORDER BY id, value;
|
|
|
|
SELECT name, part_type
|
|
FROM system.parts
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name;
|
|
|
|
|
|
SELECT name, column, type, rows
|
|
FROM system.parts_columns
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name, column;
|
|
|
|
|
|
-- delete more rows
|
|
DELETE FROM lwd_test WHERE (id % 3) = 2;
|
|
|
|
|
|
SELECT * FROM lwd_test ORDER BY id, value;
|
|
|
|
|
|
SELECT name, part_type
|
|
FROM system.parts
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name;
|
|
|
|
|
|
SELECT name, column, type, rows
|
|
FROM system.parts_columns
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name, column;
|
|
|
|
|
|
-- optimize table to merge 2 parts together, both of them have LWD rows
|
|
-- physically delete the rows
|
|
OPTIMIZE TABLE lwd_test FINAL;
|
|
|
|
SELECT * FROM lwd_test ORDER BY id, value;
|
|
|
|
|
|
SELECT name, part_type
|
|
FROM system.parts
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name;
|
|
|
|
|
|
SELECT name, column, type, rows
|
|
FROM system.parts_columns
|
|
WHERE (database = currentDatabase()) AND (table = 'lwd_test') AND active
|
|
ORDER BY name, column;
|
|
|
|
|
|
DROP TABLE lwd_test;
|