Обновить

Комментарии 10

А теперь самое интересное - как оценить оптимальность выбранной конфигурации ?

P.S. Ничего не сказано о нагрузке инфраструктуры.

Еще хочеться добавить, может в течении дня нагрузка и не большая, но зато при каком нибудь бекапе внезапно оказывается, что лишние 40% были нифига не лишнии. Я за 20 лет админства лишних ресврсов еще не видел. Потому что перед запуском, уу ресурсов навалом, а через пару лет еле хватает. А переехать некуда или вообще вырубать нельзя. Нет конечно если вы сразу в каком нибудь облаке запускаетесть переехать или накинуть можно, вот только ночью с 31 на 1 января

Спасибо, что упомянули. Совсем забыл отписать про бэкапы... Чуть позже дополню статью и на этот счет

индексы (каждый некластерный индекс - отдельная структура данных)

кластерных индексов в PostgreSQL нет. Этот термин используется только в MS Sql.

Самый простой и эффективный стартовый вариант - PGTune (калькулятор параметров по объёму RAM, CPU, типу нагрузки и числу соединений). PGTune выдаёт адекватную базовую конфигурацию

первый сайт заблокирован. Второй максимум для 13 версии. Почему не https://tantorlabs.ru/pgconfigurator , который расчитываеь конфигурацию по 21 параметру, а не 4. Если нравятся зарубежные, то https://pgconfigurator.cybertec.at/

Почему бы не загрузить или не сгенерировать тестовые данные числом строк 1% от поанируемых, использовать функции pg_*_size(имя) и умножить на 100.

кластерных индексов в PostgreSQL нет

Нигде обратного и не говорил, я лишь уточнил что в PostgreSQL каждый индекс это отдельная структура данных т.к они относятся к типу некластерных

Этот термин используется только в MS Sql

Ну как минимум некластерные индексы есть и в MySql. Эти термины хоть как идут бок о бок, поэтому не вижу ничего плохого в уточнениях, но дополнительно развернул свою мысль.

первый сайт заблокирован. Второй максимум для 13 версии. Почему не https://tantorlabs.ru/pgconfigurator , который расчитываеь конфигурацию по 21 параметру, а не 4. Если нравятся зарубежные, то https://pgconfigurator.cybertec.at/

О, спасибо. Обновил ссылки.

Почему бы не загрузить или не сгенерировать тестовые данные числом строк 1% от поанируемых, использовать функции pg_*_size(имя) и умножить на 100.

Да, естественно так и стоит сделать. Я хотел раскрыть больше теории того, на что и как тратится место в БД, но забыл описать самое очевидное... Дополнил статью, спасибо за фидбек)

я про то, что «кластерный индекс», «некластерный индекс», «некластерный тип индекса» в PostgreSQL и Oracle вообще не используется и не понятны, надо гуглить, чтобы понять, что скрывается под этим термином. Причем, даже непонятно что имеют в виду под “кластерным индексом» - то ли составной, то ли индекс-организованную таблицу (есть в Oracle, в PostgreSQL нет).

я про то, что «кластерный индекс», «некластерный индекс», «некластерный тип индекса» в PostgreSQL и Oracle вообще не используется и не понятны, надо гуглить, чтобы понять, что скрывается под этим термином

Хм, возможно, дело в моей профдеформации как backend-разработчика, но в среде разработки термины "кластерный" и "некластерный" индекс используются довольно широко. В этом контексте обычно не возникает недопонимания в терминах.

Я согласен и не отрицаю, что в PostgreSQL и Oracle нет такой вещи как "кластерный" индекс. Но сама концепция кластеризации в PostgreSQL присутствует и выражена через оператор CLUSTER, поэтому по моей субъективной оценки разночтений в терминах не должно быть.
https://postgrespro.ru/docs/postgresql/current/sql-cluster

Само понятие "clastered index" не является каким-то специфичном для одной конкретной СУБД, все же думаю, что данное понятие стоит рассматривать шире - не как фича конкретной СУБД, а как одна из концепций хранения данных.

Ну и также не очень понял пример с составным индексом, который является обособленным и общепринятым термином - composite/multicolumn/compound index.

команда cluster делает совсем другое и упорядоченность после нее может сразу нарушаться. Это как раз и путает, когда видишь термин «кластерный индекс» - в голове возникает много чего. Например, в Oracle есть кластеризованные таблицы (строки нескольких таблиц хранятся в одном блоке если значение кластерного ключа однинаково, при этом ключ может не быть ни первичным, ни внешним) и у них тоже есть кластерный индекс, но это совсем другое понятие.

Кластерный индекс не в среде разработки используется, а только у тех разработчиков, которые работали с sql server. Если все работали с sqlserver, то и кажется, что термин распространен. Если не работали, такой термин бэкэнд разработчикам неизвестен. И вот представьте, приходит разработчик в группу, где работали с оракл, а mssql и c## в глаза не видели и слышат термин «кластерный индекс», думают речь идет про индекс кластеризованных таблиц оракл ну или про команду cluster или даже про кластер баз данных постгрес, или про real application cluster. Дальнейшая речь человека, работавшего с mssql будет казаться дичью. ))

Кластерный индекс, как я понял это аналог IOT (индекс-организованной таблицы) в оракл. Почему часто используют термин "кластерный индекс", считая его широкоизвестным, скорее всего пропаганда - Microsoft разрекламировал эту структуру, создав впечатление о ее чрезвычайной полезности. В Oracle IOT это малопроизводительная (вторичные индексы), малоподдерживаемая опциями базы данных структура хранения. Как выходит какое новшество, всегда упоминается "IOT не поддерживается этим новшеством". :) А в PostgreSQL аналог вообще не стали создавать за бесперспективностью.

Этих ресурсов хватит и для 10 tps и для 50 tps и для 100 tps? Как можно давать расчеты по необзодиым ресурсов не имея данных по нагрузке.

из статьи понял что надо брать с запасом

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации