powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / База данных только для чтения, выжать производительность по максимуму
34 сообщений из 34, показаны все 2 страниц
База данных только для чтения, выжать производительность по максимуму
    #39763825
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет,
помогите определится с базой данных для нового проекта. Самое главное требование, производительность.

- Данные обнавляются раз в день, остальное время БД используется только для чтения.
- Все данные денормализированы, то есть нет никаких Joinов, но есть поиск по индексу и запросы типа "Like".
- Всё далжно работать Линуксе.
- Б.Д. естественно должна быть бесплатна.
- Б.Д. используется в проекте под Web.
- На одном сервере планируется около 200 баз данных в каждой из них по 100к - 400к записей.

Sql server express, Postgres, My Sql может NoSql Монго, Аранго?

Буду рад любым мыслям на этот счёт.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39763841
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут программист нужен.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39763936
experience
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senegura- Данные обнОвляются раз в день, остальное время БД используется только для чтения.
- Все данные денормализированы, то есть нет никаких Joinов, но есть поиск по индексу и запросы типа "Like".


Если бы у проекта http://hytechdb.ru была менее печальная и более предсказуемая судьба, это был бы идеальный кандидат под эти два пункта требований.
Возможно отдаёт найденное как и все прочие но на плоских таблицах подсчитывает количество записей удовлетворяющих множественным и сложным лайкам(like) практически мгновенно.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39764065
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovТут программист нужен.

Спасибо это я, поэтому обратился к форуму, т.к. 100% здесь есть люди которые разбираются в базах данных лучше меня.
Похоже придётся самому сделать бенчмарки. Выбор стоит между Sql Server Express и Postgresql, т.к. .NET стек приоритете (.Net > Java).


Короче нужна База данных, которая при максимальной нагрузке, даст наилучшие результаты по индексам, запросы "Like" и фильтрация данных по нескольким полям.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39764213
experience
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senegura,
http://www.minimdb.com/mbook/mumps_dbms.pdf

Глава 3
Индексация данных
стр. 227

Если вы вольны сами формировать структуру хранения может быть полезна оч. старая и оч. добрая технология.

ИМХО sql и его like в частности оч. хорош при анализе чужих данных в случае не возможности их реструктуризировать под нужные запросы, т.е. их(запросов) число и структура не известны. В противном случае реорганизация хранения под требования может оказаться единственно верным решением с точки зрения эффективности.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39764218
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senegura, а запросы типа like по какому набору данных? По фамилии имени отчеству или по какому-нибудь описанию? И пример.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39764241
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОзверинSenegura, а запросы типа like по какому набору данных? По фамилии имени отчеству или по какому-нибудь описанию? И пример.

По юникодовой строке ограниченой длинны. Что то типа nvarchar(200) имя + фамилия вместе.
Грубо говоря обычный стринговый индекс в одной колонке, не разбит на 2 поля и ограниченой длинны, не текст.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39764251
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
experienceSenegura,
http://www.minimdb.com/mbook/mumps_dbms.pdf

Если вы вольны сами формировать структуру хранения может быть полезна оч. старая и оч. добрая технология.



Спасибо за линк, что то подобное искал. т.к. был конечно соблазн самому реализовать некоторые аспекты.
Но думую, что в 2019 не стоит заниматься изобретением велосипеда. В любом случае профисиональная база данных сделает это лучше меня.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39764297
experience
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeneguraexperienceSenegura,
http://www.minimdb.com/mbook/mumps_dbms.pdf

Если вы вольны сами формировать структуру хранения может быть полезна оч. старая и оч. добрая технология.



Спасибо за линк, что то подобное искал. т.к. был конечно соблазн самому реализовать некоторые аспекты.
Но думаю, что в 2019 не стоит заниматься изобретением велосипеда. В любом случае профессиональная база данных сделает это лучше меня.
В дополнение к спасибо )))
У вас в требованиях: web и бесплатно...
https://www.sql.ru/forum/1307574/opublikovan-fastcgi-dlya-gt-m
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39764321
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeneguraКороче нужна База данных, которая при максимальной нагрузке, даст наилучшие результаты по
индексам, запросы "Like" и фильтрация данных по нескольким полям.

std::map вполне даст наилучшие результаты. Но программист таки понадобится.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39764375
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Senegura- На одном сервере планируется около 200 баз данных в каждой из них по 100к - 400к записей.
.

Dimitry Sibiryakovstd::map вполне даст наилучшие результаты. Но программист таки понадобится.


Програмист посоветовавший std::map не понадобится.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39764554
loki1984
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ClickHouse в облаке или без облака
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39764672
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeneguraDimitry SibiryakovТут программист нужен.

Спасибо это я, поэтому обратился к форуму, т.к. 100% здесь есть люди которые разбираются в базах данных лучше меня.
Похоже придётся самому сделать бенчмарки. Выбор стоит между Sql Server Express и Postgresql, т.к. .NET стек приоритете (.Net > Java).


Короче нужна База данных, которая при максимальной нагрузке, даст наилучшие результаты по индексам, запросы "Like" и фильтрация данных по нескольким полям.

Если быть дотошным. То твой задание - непонятно.
Нужно включить все возможности логгирования и собрать все виды запросов за 1 типичный день.
Выделить из них критичные.
И посмотреть что программист может сделать для производительности.
Посокльку система обновляется раз в день - то можно кешировать все что можно в приложении.
LIKE - expressions надо проанализировать и понять что на самом деле искал пользователь.
Часть этих запросов покрываются такими структурами как Radix-tree.

Правильно было сказано что для решения этой задачи нужен программист. Таких волшебных
опций чтобы все летало в PG/MySQL/Sql нету. Они по дефолту достаточно хороши. И твикать их
надо с умом.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39765313
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonИ посмотреть что программист может сделать для производительности.
Посокльку система обновляется раз в день - то можно кешировать все что можно в приложении.
LIKE - expressions надо проанализировать и понять что на самом деле искал пользователь.


Не совсем понятно почему люди продолжают писать, что нужен программист. Это из серии советов Виталия Кличко: "Чем старше человек, тем больше ему лет."

Программист понадобится в любом случае.
Система публикует статистику для игроков онлайн игры. Там больше милиона пользователей, но на пиках там сидит до 100 человек.
Естественно, что всё что возможно там закэшировано, кэшировать что то на уровне одного юзера нет смысла. Radix непонятно как мне поможет тут, записовать милионы игроков в словарь?
Сейчас возникло желание перевести всё под Линукс и на новый .NET ну либо Java.

Из требований сейчас только максимальная производительность индексов под нагрузкой. Индекс 1 строковое поле, имя игрока в игре, а также индексы фильтрации, по дате например.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39765314
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
loki1984 ClickHouse в облаке или без облака

Что то типо такого я и искал. Протестирую Clickhouse как он в сравении с postgresql для моей специфической цели.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39765318
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да зыбыл ещё кое что:
ненужен Fault tolerance, журнал и Isolation Level может быть низким, т.к. база данных побликует всё 1 раз в день и вслучае ошибки, просото переопубликует данные на следующий день.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39765333
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeneguramaytonИ посмотреть что программист может сделать для производительности.
Посокльку система обновляется раз в день - то можно кешировать все что можно в приложении.
LIKE - expressions надо проанализировать и понять что на самом деле искал пользователь.


Не совсем понятно почему люди продолжают писать, что нужен программист. Это из серии советов Виталия Кличко: "Чем старше человек, тем больше ему лет."
За свою практику я побыл 6 лет DBA. И оставшиеся годы - разработчиком. И я скажу DBA в общем понимании этого
слова обладает большей экспертизой в области оптимизации запросов. Я много общался с разработчиками
SQL и могу сказать что на фоне того что у них есть знания в обычных ЯП (C#, Java), в области баз данных
у них знания - поверхностные. Обычно разработчик очень быстро охладевает к самой теме оптимизации запросов
просто попробовав 2-3 варианта и далее "забивает". У него как правило есть приоритетные вещи а оптимизацию
можно скинуть одельной эпикой на сектор поддержки БД. По крайней мере так было в эпоху 2000х. Доткомы.
Двузвенки. Толстые клиенты.

Поэтому и эту задачу можно рассматривать в разрезе 2х сценариев. Один сценарий - это создание
систем материализованных views на стороне SQL таким образом чтобы LIKE запросы заработали быстрее.
Это сделает DBA. И второй сценарий - это создание на уровне приложения кешей которые сделают то-же самое.
Сейчас сказать однозначно что лучше невозможно. У нас мало статстики по задаче. У нас нет оценок стоимости
доработки. И нет понимания какая экспертиза есть у команды. И сколько времени дано и денег.

Но учитывая последние тренды в сегменте It. Я сказал что лучше - программист.
Тоесть мое предположение о том что нужен программист звучало именно как
выбор между программистом и DBA.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39765356
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeneguraСистема публикует статистику для игроков онлайн игры. Там больше милиона пользователей, но на пиках там сидит до 100 человек
до 100 или нолей не забыли дописать?

SeneguraRadix непонятно как мне поможет тут, записовать милионы игроков в словарь?
Это проблема?
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39765358
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeneguraRadix непонятно как мне поможет тут, записовать милионы игроков в словарь?
Ну.. вы сначала почитайте про подобные структуры данных. Их много. Сюда-же красно-черные деревья
и прочее. Это все сущности мира "оперативной памяти". Тоесть то что гарантировано не свапируется.
И если ваш замечательный справочник уложится в 2-4-8 Гигабайт. А я надеюсь что уложится потому-что
миллионы - это не так уж много. Миллионы - это приставка мега*. А миллиарды - это гига*
Вы - инженер? Должны понимать порядок измерений. И в даннмо случае если у вас на борту миллиарды
то речь идет о преимуществе в три порядка.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39765360
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeneguraСейчас возникло желание перевести всё под Линукс и на новый .NET ну либо Java.

Вообще непонятно... На чем основано это отчаянное... безосновательное желание. Вроде как
последняя попытка спасти ситуацию. Согласитесь? Как-то так выглядит..

Если у вас есть код под .Net и он уже написан и протестирован - пускай он и работает
под Windows. Потому что чудовищное количество архитетурных вопросов которые надо
решать при такой миграции не поддается оценке. Тут - просто ваши деньги и ваши ресурсы
и ваша интуиция должны подсказать.

Но я-бы не советовал.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39766600
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВообще непонятно... На чем основано это отчаянное... безосновательное желание. Вроде как
последняя попытка спасти ситуацию. Согласитесь? Как-то так выглядит..

Потому что чудовищное количество архитетурных вопросов которые надо
решать при такой миграции не поддается оценке.

Но я-бы не советовал.

На удивление, некоторые проекты, мигрирую довольно легко с .NET на .NET CORE.
При условии, если они неплохо написаны и нету плаформо-зависимого кода.

Помню, как то у меня заняло всего 1 рабочий день на миграцию, в основном из за работы с базами данных. Новая EF Core работает немного по другому.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39766606
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonНу.. вы сначала почитайте про подобные структуры данных. Их много. Сюда-же красно-черные деревья
и прочее. Это все сущности мира "оперативной памяти".

В моём случае всё гораздо проще, ненужно изобретать велосипед, я могу просто всё хранить так, как это будет использовано в Web. Например у меня есть Web Grid я могу просто держать это в обычном листе.

Но я не уверен, что пихать всё в оперативную память это правильное решение, т.к. со временем количество юзеров только увеличивается.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39766611
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дегтярев Евгенийдо 100 или нолей не забыли дописать?

К сожалению тормоза начинаются даже немного раньше.

Дегтярев ЕвгенийЭто проблема?
Не уверен, не привык пихать всё подряд в оперативку.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39766612
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня - большой скепсис на эту тему. Если под миграцией на NET CORE подразумевается
миграция на Linux (NET CORE) то все ваши знания в администрировании Windows - нивелируются.
Нужно получать новые знания и нужно научится решать новый пласт вопросов.
Как это будет выглядеть во времени - мне сложно представить. Ну или здесь
просто высокий риск залипнуть с каким-то пустяком на долгий срок.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39766665
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeneguraНо я не уверен, что пихать всё в оперативную память это правильное решение, т.к. со
временем количество юзеров только увеличивается.

Поэтому в оперативной памяти следует держать только активную их часть. Остальное и на
диске может полежать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39766675
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeneguraНе уверен, не привык пихать всё подряд в оперативку.
какой средний объем данных на пользователя?
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39766694
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonУ меня - большой скепсис на эту тему. Если под миграцией на NET CORE подразумевается
миграция на Linux (NET CORE)
Конечно

maytonНужно получать новые знания и нужно научится решать новый пласт вопросов.
Как это будет выглядеть во времени - мне сложно представить. Ну или здесь
просто высокий риск залипнуть с каким-то пустяком на долгий срок.

Все новые проекты уже работают по Линукс. Тем более что соблазняет цена. Неплохой сервер на каком нибудь Hetzner можно взять за 40$ в месяц. Windows та же самая конфигурация будет стоить в 2 раза дороже, из за лицензии.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39766697
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovПоэтому в оперативной памяти следует держать только активную их часть. Остальное и на
диске может полежать.


Такой вариант вполне может работать. Можно держать не активных игроков, а тех игроков, которых просматривают на сайте или они просматривают сами себя.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39766715
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дегтярев Евгенийкакой средний объем данных на пользователя?
Примерно 200 байт на юзера + 2 строки переменной длинны, его имя и имя гильдии где он находится. Но правда имеется данные переменной длинны, его игровая история.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39766720
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Senegura]Дегтярев ЕвгенийНо правда имеется данные переменной длинны, его игровая история.
вот этот размер в среднем и интересует
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39766733
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дегтярев Евгенийвот этот размер в среднем и интересует

Это история игрока за всё время. В основном история перехода по гильдиям. В большинстве это 1 запись: Дата перехода и имя гильдии, но некоторые меняют гильдии очень часто
У некоторых около 100 событий.
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39766742
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senegura,

кол-во событий на кол-во пользователей поделить можно?
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39766948
Senegura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дегтярев Евгенийкол-во событий на кол-во пользователей поделить можно?

Не совсем уверен, что понял вопрос, но
вот игрок у которого около 100 событии: http://ru2.foedb.com/players/11garis/Timeline
вот всего одно: http://ru2.foedb.com/players/Karbonit/Timeline
а вот среднестатистический активный игрок: http://ru2.foedb.com/players/Чекан/Timeline
...
Рейтинг: 0 / 0
База данных только для чтения, выжать производительность по максимуму
    #39767025
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Seneguraвот игрок у которого около 100 событии

Не имеет смысла оптимизировать редко посещаемую страницу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / База данных только для чтения, выжать производительность по максимуму
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]