[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: оптимизация бд
Страницы: 1, 2, 3, 4, 5
S.Chushkin
Цитата (hurt3 @ 30.08.2016 - 17:16)
я имею ввиду то что  может быть я просто словил параною, и решаю проблемы которых нет

100%

Цитата
но с другой стороны разве разумно решать системные проблемы аппаратными способами, почему из программ не выжать максимум прежде чем менять железо, м?

Нет абсолютного решения "железо vs ПО" - всё определяется ценой.

В примере, про который я писал выше, мы справились всего за несколько дней (идея - согласование - создание - тестирование - боевой), а если бы меняли структуру, алгоритмы, код, то провозились бы месяца три, чтобы сделать оптимально. Просто была такая задача "как можно быстрее".

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
hurt3
S.Chushkin

а почему сразу не поставить решение на партиции или виевсы?

с учетом будущих возможных объемов так сказать?

может быть чуть боьше места будет заниматься, но спокойней будет сон нет?
S.Chushkin
Цитата (hurt3 @ 30.08.2016 - 17:29)
S.Chushkin

а почему сразу не поставить решение на партиции или виевсы?

с учетом будущих  возможных объемов так сказать?

может быть чуть боьше места будет заниматься, но спокойней будет сон нет?

В одной небольшой базе у меня около 200 таблиц.
Каждая из них теоретически может иметь 4 миллиарда записей, что даст размер базы около 800 000 террабайт.
База была создана 10 лет назад. Фактически, на сегодня база достигла размера 200 мегабайт и самая большая таблица, около 1 млн. записей. Т.е. прирост в год около 20М.

Догадайся с одного раза, мне надо было рассчитывать ПО под такие теоретические размеры? wink.gif

Есть хорошее правило: "Всё хорошо, что в меру". И каждая задача требует своей меры.
Если ты уверен (сильно уверен), что твоя задача раздует БД до пары-другой террабайт за год - закладывай в решения это. А если "может быть, но скорее всего НЕ быть", не парься, если припрёт - сделаешь.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
hurt3
S.Chushkin

ну понятно спасибо
twin
Цитата (hurt3 @ 30.08.2016 - 13:29)
а почему сразу не поставить решение на партиции или виевсы?

с учетом будущих возможных объемов так сказать?

YAGNI

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
sergeiss
Цитата (S.Chushkin @ 30.08.2016 - 17:06)
Забудь про разделение на части (ака партицирование), если размер БД меньше 1-2 террабайт.

Не соглашусь. С ходу не соглашусь. По крайней мере на примере работы Постгре. Во-первых, выигрыш по скорости от партицирования есть, однозначный. Во-вторых, партицирование улучшает не только скорость выборки, но и позволяет удобнее работать с БД.
Естественно, если в выборке чаще всего оказывается задействована почти вся таблица, а не некоторые её части (партиции), то пользы не будет никакой smile.gif Но это будет говорить не о недостатке партиций, а о неправильном их применении.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
S.Chushkin
Я не говорю, что разбиение это "плохо" или "хорошо". Я говорю, что партицирование надо применять там, где нужно. А нужно это бывает крайне редко, как говорится "штучный товар". И практика показывает, что базы до 300Г с таблицами до сотен млн. записей не нужно разбивать, т.к. выигрыша не даёт. За редким-редким исключением.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
sergeiss
Цитата (S.Chushkin @ 30.08.2016 - 22:19)
И практика показывает, что базы до 300Г с таблицами до сотен млн. записей не нужно разбивать, т.к. выигрыша не даёт.

Чья именно практика, какой тип БД использовался, как делалось партицирование, на каких запросах проверялось, что нет выигрыша... По каким критериям проводилось разбиение на партиции и как они фигурировали в запросах.... И еще много-много других вопросов smile.gif
Еще раз повторю, что мой опыт говорит о том, что просто миллионов записей достаточно, чтобы партицирование помогло ускорить выборки.
И еще раз скажу, что партицирование также позволяет улучшить обслуживание БД. В частности, (в правильных СУБД) можно забэкапить и удалить из активной работы часть таблицы, т.е. некоторые партиции. Например, устаревшие по времени. Без партиций это нереально сделать. А потом эти данные можно достать из бэкапа и поработать с ними - если вдруг возникнет такая надобность.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
hurt3
sergeiss

по вопросу текщуему о денормализации в угоду ускорения процессов бд что скажешь?
hurt3
Цитата (sergeiss @ 30.08.2016 - 21:23)
Естественно, если в выборке чаще всего оказывается задействована почти вся таблица, а не некоторые её части (партиции), то пользы не будет никакой


это вопрос как планировать бд, в указанном мной случае это будет 1 книга -1 элемент верхнего уровня, но по факту, партиционирование это как разнеси документы с одинаковыми ключами по папкам

т.е. по логике в любом случае это уже уменьшение нагрузки на бд, если есть хотя бы 2 элемента для партиционирования
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.