Size: a a a

DBA - русскоговорящее сообщество

2021 January 01

A

Adv0cat in DBA - русскоговорящее сообщество
У вас столько данных не будет и юзеров, чтобы вы медленность заметили, даже если вы самым тупым и простым способом все сделаете с 3-4 джоинами 😄
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
Adv0cat
У вас столько данных не будет и юзеров, чтобы вы медленность заметили, даже если вы самым тупым и простым способом все сделаете с 3-4 джоинами 😄
спасибо) я понимаю, но одно из заданий дипломной работы - способы оптимизации хай-лоад систем
источник

n🐈

nikoinlove 🐈 in DBA - русскоговорящее сообщество
начни с sqlite а потом на постгрес перейди :)
источник

A

Adv0cat in DBA - русскоговорящее сообщество
Serega Carbon
спасибо) я понимаю, но одно из заданий дипломной работы - способы оптимизации хай-лоад систем
Чтобы что-то оптимизировать, нужно чтобы было что-то не оптимизированное 😂
источник

A

Adv0cat in DBA - русскоговорящее сообщество
nikoinlove 🐈
начни с sqlite а потом на постгрес перейди :)
Ну вы палку то не перегибайте 😁
источник

A

Anton in DBA - русскоговорящее сообщество
Serega Carbon
Есть такой вопрос. Начинаю писать дипломный проект - соц. сеть кулинарных рецептов, соответственно будут юзеры, посты с рецептами, фолловеры (основные сущности). Вот остановился на построении архитектуры. Смотрел на реляционные базы  в частности постгрес, как стандартное решение. Но вот если у нас будет оочень много юзеров, постов и т.д., запросы джоинов буду проходить очень медленно (такие, как сделать сначала выдачу постов юзеров, за которыми следит данный пользователь). Потом пошел к NoSQL решениям, смотрел Кассандру - но в ней не получится сделать то, что нужно (например отфильтровать посты по кол-ву ингредиентов (ну сами понимаете, как устроена Кассандра)). Смотрел графовые БД, Neo4j, но они не очень предназначены для хранения больших данных, запросы тоже будут идти  долго. Потом решил загуглить как устроен Интсаграмм, они как-то умудряются юзать и Кассандру и Постгрес, не знаю как. Ну ок. Решил всё таки остановится на Постгресе. Но вопрос в том как с помощью системы кеширования (Редис, например) ускорить время ответа на запрос. Можно ли делать так? Берем 1000 грубо говоря постов с постгреса и кладём в Редис, ну и потом уже с клиента идём в Редис и пагиннируем (с лимитом 12 постов допустим) эти посты и возвращаем нужное клиенту? Или можно как-то по-другому это реализовать? Подскажите пожалуйста, буду очень благодарен)
С Closure table можно уже много джойнов оптимизировать, если структура вроде форума.
https://bitworks.software/en/2017-10-20-storing-trees-in-rdbms.html
источник

A

Anton in DBA - русскоговорящее сообщество
Adv0cat
Как у вас все интересно медленно получилось еще даже без какой либо реализации 😄 Ни сколько пользователей предполагается, ни сколько постов предполагается, ни каких цифр, но все медленно, даже на касандре 😅
👍
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
Adv0cat
Чтобы что-то оптимизировать, нужно чтобы было что-то не оптимизированное 😂
да, но для теста то я же могу загнать 1М юзеров? могу, а значит и смогу проверить скорость выполнения запросов
источник

A

Adv0cat in DBA - русскоговорящее сообщество
Serega Carbon
да, но для теста то я же могу загнать 1М юзеров? могу, а значит и смогу проверить скорость выполнения запросов
Ну вот когда засунете 1м юзеров и у вас будет уже готовая рабочая архитектура, тогда и будете оптимизировать, применяя методы оптимизации хайлоад систем))) Только хайлоад вроде бы это не о колличестве юзеров, а о частоте использования, но могу ошибаться в этом 😊
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
Adv0cat
Ну вот когда засунете 1м юзеров и у вас будет уже готовая рабочая архитектура, тогда и будете оптимизировать, применяя методы оптимизации хайлоад систем))) Только хайлоад вроде бы это не о колличестве юзеров, а о частоте использования, но могу ошибаться в этом 😊
да, хайлоад наступает тогда, когда система уже не справляется с обработкой запросов из-за высокой нагрузки
источник

I

ILYA in DBA - русскоговорящее сообщество
Serega Carbon
спасибо) я понимаю, но одно из заданий дипломной работы - способы оптимизации хай-лоад систем
Для хай лоад систем нужно глубокое понимание выбранной под эту систему технологии и умение использовать весь ее функционал. А так вас ни одна из этих систем не спасет в базовой конфигурации, там будет намного больше нюансов которые нужно будет решать, чем поставим тут редис в виде кеша и теперь то все залетает....
источник

A

Anton in DBA - русскоговорящее сообщество
Serega Carbon
да, но для теста то я же могу загнать 1М юзеров? могу, а значит и смогу проверить скорость выполнения запросов
Стоит так и сделать - загнать 1кк юзеров и мерять. Теоритизация не решит вопросов и в итоге может упереться просто в диск, но дай базе хороший рейд и она залетает на еще пару кк юзеров. Или в сеть - и никакой редис не поможет.
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Serega Carbon
да, хайлоад наступает тогда, когда система уже не справляется с обработкой запросов из-за высокой нагрузки
Хай лоад - это просто бла бла бла , там нет никаких технических критериев.
источник

SZ

Sergey Zhmylove in DBA - русскоговорящее сообщество
Serega Carbon
да, хайлоад наступает тогда, когда система уже не справляется с обработкой запросов из-за высокой нагрузки
Когда нагрузка больше загрузки это уже оверлоад, а не хайлоад.
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
хорошо, спасибо всем за помощь, пошёл разбираться
источник

I

ILYA in DBA - русскоговорящее сообщество
Serega Carbon
хорошо, спасибо всем за помощь, пошёл разбираться
Поищите на Ютубе канал HighLoad , у них огромное количество докладов по самым разным технологиям обработки и хранения данных применимо к различным сценариям. Уверен там есть и представители социальных сетей или что-то похожее на ваш кейс .
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
ILYA
Поищите на Ютубе канал HighLoad , у них огромное количество докладов по самым разным технологиям обработки и хранения данных применимо к различным сценариям. Уверен там есть и представители социальных сетей или что-то похожее на ваш кейс .
спасибо
источник

A

Anton in DBA - русскоговорящее сообщество
Serega Carbon
хорошо, спасибо всем за помощь, пошёл разбираться
Социалку вроде лучше всего графовая структура вывозит, т.е. можно Neo4j поколупать - графовые БД как раз заточены чтобы двигаться по графам связей пользователей без джойнов O(log n), а индексным доступом O(1), но можно наклететь на обратных эфыект - когда понадрбятся аростые джойны их не будет, либо будут очень тормозить.

А кассандра, насколько я понимаю,  лучше всего  в OLAP - когда нужно тьму денормальзованных данных напихать в одну таблицу с почти неограниченным количеством столбцов и быстро O(1) искать по комбинацим значенияй этих столбцов. По сравнению с апелляционной это "быстро" можно хоть как-то нащупать от 10кк записей.
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
Anton
Социалку вроде лучше всего графовая структура вывозит, т.е. можно Neo4j поколупать - графовые БД как раз заточены чтобы двигаться по графам связей пользователей без джойнов O(log n), а индексным доступом O(1), но можно наклететь на обратных эфыект - когда понадрбятся аростые джойны их не будет, либо будут очень тормозить.

А кассандра, насколько я понимаю,  лучше всего  в OLAP - когда нужно тьму денормальзованных данных напихать в одну таблицу с почти неограниченным количеством столбцов и быстро O(1) искать по комбинацим значенияй этих столбцов. По сравнению с апелляционной это "быстро" можно хоть как-то нащупать от 10кк записей.
тоесть простые джоины - это например, запрос всех постов пользователей, где нужно всего один джоин?
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Serega Carbon
тоесть простые джоины - это например, запрос всех постов пользователей, где нужно всего один джоин?
По моему так этот товарищ просто кучку бреда тебе нагенерировал, и все...
источник