/
Faykrill
/
DBA
Обзор
Документация
Войти
/
Faykrill
/
DBA
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
optimize_query/generate_table.sql
94 строки
4 KB
Faykrill
create: generate_table.sql, query.sql, new_query.sql, Readme.md
16 май 2026, 07:24
Верифицирован
16 май 2026, 07:24
7ddd390
Код
Авторство
О чём код?
DROP TABLE IF EXISTS test_data_33_fields; CREATE TABLE test_data_33_fields ( id serial PRIMARY KEY, -- INT поля (1-5) field_int_1 int, field_int_2 int, field_int_3 int, field_int_4 int, field_int_5 int, -- BIGINT поля (6-10) field_bigint_1 bigint, field_bigint_2 bigint, field_bigint_3 bigint, field_bigint_4 bigint, field_bigint_5 bigint, -- NUMERIC поля (11-15) field_numeric_1 numeric(10,2), field_numeric_2 numeric(10,2), field_numeric_3 numeric(10,2), field_numeric_4 numeric(10,2), field_numeric_5 numeric(10,2), -- TEXT поля (16-20) field_text_1 text, field_text_2 text, field_text_3 text, field_text_4 text, field_text_5 text, -- BOOLEAN поля (21-23) field_bool_1 boolean, field_bool_2 boolean, field_bool_3 boolean, -- DATE поля (24-26) field_date_1 date, field_date_2 date, field_date_3 date, -- TIMESTAMP поля (27-29) field_ts_1 timestamp, field_ts_2 timestamp, field_ts_3 timestamp, -- FLOAT поля (30-33) field_float_1 float, field_float_2 float, field_float_3 float, field_float_4 float ); -- Вставка 1 000 000 строк INSERT INTO test_data_33_fields ( field_int_1, field_int_2, field_int_3, field_int_4, field_int_5, field_bigint_1, field_bigint_2, field_bigint_3, field_bigint_4, field_bigint_5, field_numeric_1, field_numeric_2, field_numeric_3, field_numeric_4, field_numeric_5, field_text_1, field_text_2, field_text_3, field_text_4, field_text_5, field_bool_1, field_bool_2, field_bool_3, field_date_1, field_date_2, field_date_3, field_ts_1, field_ts_2, field_ts_3, field_float_1, field_float_2, field_float_3, field_float_4 ) SELECT -- INT поля (1-5): значения от 0 до 999 (gs.n % 1000)::int, ((gs.n % 1000) * 13) % 1000, ((gs.n % 1000) * 7) % 1000, ((gs.n % 1000) * 19) % 1000, ((gs.n % 1000) * 11) % 1000, -- BIGINT поля (6-10): значения до 1 000 000 (gs.n % 100000)::bigint, (gs.n % 50000)::bigint, (gs.n % 20000)::bigint, (gs.n % 80000)::bigint, (gs.n % 30000)::bigint, -- NUMERIC поля (11-15): дробные значения round((gs.n % 10000)::numeric / 100, 2), round((gs.n % 10000)::numeric / 100, 2), round((gs.n % 10000)::numeric / 100, 2), round((gs.n % 10000)::numeric / 100, 2), round((gs.n % 10000)::numeric / 100, 2), -- TEXT поля (16-20): текстовые значения 'Text_' || gs.n, 'Value_' || gs.n, 'Data_' || gs.n, 'Record_' || gs.n, 'Entry_' || gs.n, -- BOOLEAN поля (21-23): случайные булевы значения (gs.n % 2 = 0), (gs.n % 3 = 0), (gs.n % 5 = 0), -- DATE поля (24-26): даты за последние 3 года current_date - (gs.n % 1095), current_date - ((gs.n % 1095) * 2 % 1095), current_date - ((gs.n % 1095) * 3 % 1095), -- TIMESTAMP поля (27-29): временные метки за последние 30 дней now() - ((gs.n % 720) * interval '1 hour'), now() - ((gs.n % 720) * interval '1 hour'), now() - ((gs.n % 720) * interval '1 hour'), -- FLOAT поля (30-33): дробные значения (gs.n % 10000) * 0.123456, (gs.n % 10000) * 0.987654, (gs.n % 10000) / 13.7, (gs.n % 10000) * 3.14159 FROM generate_series(1, 1000000) AS gs(n); select * from test_data_33_fields