172 похожих чатов

8 ответов

23 просмотра

Место на диске, возможно, скорость вставки и т.п. Ну и в принципе не создаю индексы, пока они реально не нужны

Konstantin Zaitsev
Зря

А какой профит? Всегда можно создать индекс тогда, когда он потребуется

Konstantin-Zaitsev Автор вопроса
Dmitriy Sviridov
А какой профит? Всегда можно создать индекс тогда,...

Всегда можно не парится ) Что у вас за скорость вставки что индекс влияет

Konstantin Zaitsev
Всегда можно не парится ) Что у вас за скорость в...

Я, если честно, не замерял, сильное воздействие наличие неиспользуемого индекса оказывает на скорость вставки или нет. Но у меня были сервисы, где в несколько таблиц данные закидывались пачками по несколько тысяч записей в несколько таблиц. Сейчас доступа к ним не имею, но было бы интересно провести эксперимент

Konstantin-Zaitsev Автор вопроса
Dmitriy Sviridov
Я, если честно, не замерял, сильное воздействие на...

Проведите. Есть как в анекдоте «ньюансы» для IOT, OPC и тд, но в стандартной нагрузке не видел

Dmitriy Sviridov
Я, если честно, не замерял, сильное воздействие на...

А что там замерять? Вот script и мои результаты (и линейная регрессия для них): DROP TABLE IF EXISTS indexes_test; CHECKPOINT; CREATE UNLOGGED TABLE indexes_test ( -- Comment out UNLOGGED as needed id1 bigint NOT NULL, id2 bigint NOT NULL, id3 bigint NOT NULL, id4 bigint NOT NULL, id5 bigint NOT NULL, id6 bigint NOT NULL, id7 bigint NOT NULL, id8 bigint NOT NULL ); -- Comment out as needed: CREATE INDEX ON indexes_test(id1); CREATE INDEX ON indexes_test(id2); CREATE INDEX ON indexes_test(id3); CREATE INDEX ON indexes_test(id4); CREATE INDEX ON indexes_test(id5); INSERT INTO indexes_test(id1, id2, id3, id4, id5, id6, id7, id8) SELECT n, n, n, n, n, n, n, n FROM generate_series(1, 1000000) AS g(n); VACUUM ANALYZE indexes_test; -- This one is measured: INSERT INTO indexes_test(id1, id2, id3, id4, id5, id6, id7, id8) SELECT n, n, n, n, n, n, n, n FROM generate_series(1000001, 2000000) AS g(n); -------------------------------------------------------------------------------- -- № indexes | Unlogged time (min of 3 runs) | Logged time (min of 3 runs) -- 0 | 793.048 ms | 1697.086 ms -- 1 | 1428.326 ms | 2792.062 ms -- 2 | 2085.053 ms | 3696.384 ms -- 3 | 2687.056 ms | 4720.533 ms -- 4 | 3285.057 ms | 5851.648 ms -- 5 | 3892.328 ms | 6676.305 ms -- Rough approximation of the above: WITH base AS ( SELECT n, 793.0 + 630 * n AS unlogged, 1697.0 + 1000 * n AS logged FROM generate_series(0, 5) AS g(n) ) SELECT n AS n_indexes, unlogged, round(100 * (unlogged / LAG(unlogged) OVER (ORDER BY n) - 1), 2) AS "unlogged %", logged, round(100 * (logged / LAG(logged) OVER (ORDER BY n) - 1), 2) AS "logged %" FROM base; -- n_indexes | unlogged | unlogged % | logged | logged % -- 0 | 793.0 | | 1697.0 | -- 1 | 1423.0 | 79.45 | 2697.0 | 58.93 -- 2 | 2053.0 | 44.27 | 3697.0 | 37.08 -- 3 | 2683.0 | 30.69 | 4697.0 | 27.05 -- 4 | 3313.0 | 23.48 | 5697.0 | 21.29 -- 5 | 3943.0 | 19.02 | 6697.0 | 17.55 Каждый может попробовать и сделать выводы (вывести очевидное rule of thumb) самостоятельно. ;)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта