powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Размер базы сферического-java-приложения в вакууме.
25 сообщений из 87, страница 3 из 4
Размер базы сферического-java-приложения в вакууме.
    #39255115
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mad_Head Как сказать не сталкивался... Я крутился вокруг подобных проблем 7 лет работая 1с-ником, причем базы бывали на столько огромные, что часто приходилось прибегать к работе с БД средствами SQL минуя ORM 1c. Приходилось заниматься оптимизацией, но более низкоуровневой чаще всего анализ начинался с просмотра плана запроса и лога блокировок, джависты, как правило, такие темы не обсуждают. По этой причине как решить задачу средствами jdbc я довольно хорошо представляю, структура БД из моего поста выше подошла бы, нужно только энтити на таблицы заменить. Опыта в JPA у меня меньше по этому я и общаюсь в данной теме, что бы выяснить для себя почему вы считаете, что JPA не пригодно для такой вполне просто задачи. И если вы знаете почему, то вполне смогли бы предоставить кейс. К примеру "не получится 1 запросом выбрать список товаров по набору характеристик/свойств" - просто лакончино и без юления. Я даже буду готов проверить ваше утверждение.

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

авторМэд, только что глянул ваше решение. лол. вы просто в гуд по сути добавили лист пропертей. а лист может быть длиной... если не ошибаюсь. два в 32й степени. Вадя, тебе хватит пропертей? :)
тут дело не в количестве, а в том как эти свойства назначить конкретному товару, как организовать фильтрацию, как организовать отображение, добавление и прочее, прочее. и учесть при этом быстродействие.
к примеру , модно хранить набор свойств у товара в поле в виде такого набора 34,5,6,...
где числа - id свойств.
всё красиво, но только до тех пор пока не надо организовывать поиск по свойствам, сортировку, красивый вывод....
при малых объёмах это не заметно , но при настоящих объёмах данных - это уже тормоза.

если ты сможешь построить серьёзный запрос - да можно его подсунуть хиберу, будет красиво... вроде.
но что в итоге сделает хибер? он просто заполнит таблицу, которую необходимо вывети юзеру.
произвести запись в "серьёзный" запрос он не сможет - потому как запрос "реад онли".
а вывести результат из результсета можно и самому - всё просто.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255117
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю в тему ли...

Меня заинтересовала оптимизация поиска товаров по набору булевых свойств.

Нагуглил как это сделано в связке PHP+MySQL+Redis:

https://habrahabr.ru/post/261137/
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255119
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTГоспода, собссно вопрос не праздный, а выходит из предыдущей темы. Я как программист на данный момент не дюже опытный, посему спрашиваю:

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

Всё зависит от постановки задачи (главный аспект) и стиля проектирования БД и приложения, с ним работающего.
Например, если у кого-то EAV используется, это всего 10-20 таблиц и есть.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255126
Mad_Head
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадявот ты сам себе и ответил, к этому добавить можно только то что для оптимизации необходимо использовать все возможности конкретной субд.

Но я все же склонен считаь, что данную инфу получится выбрать 1 HQL запросом. Завтра набросаю пример и проверю наверняка. Если таблице которая хранит свойство/значение сделать составной индекс, то производительности будет достаточно для большенства проектов. Я думаю что куча CRM систем работат по похожему принципу.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255135
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
там хорошо описали проблему свойств. но решение очень частное. я б не стал на него ориентироваться.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255141
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадятут дело не в количестве, а в том как эти свойства назначить конкретному товару, как организовать фильтрацию, как организовать отображение, добавление и прочее, прочее. и учесть при этом быстродействие.
к примеру , модно хранить набор свойств у товара в поле в виде такого набора 34,5,6,...
где числа - id свойств.
всё красиво, но только до тех пор пока не надо организовывать поиск по свойствам, сортировку, красивый вывод....
при малых объёмах это не заметно , но при настоящих объёмах данных - это уже тормоза.

если ты сможешь построить серьёзный запрос - да можно его подсунуть хиберу, будет красиво... вроде.
но что в итоге сделает хибер? он просто заполнит таблицу, которую необходимо вывети юзеру.
произвести запись в "серьёзный" запрос он не сможет - потому как запрос "реад онли".
а вывести результат из результсета можно и самому - всё просто.

вытаскиваем из табл свойств все свойства, подходящие под нужное нам описание, потом через свойства вытаскиваем все товары, к которым они привязаны. не?
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255147
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
это для каких целей?
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255151
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяandreykaT,
это для каких целей?
ты озвучивал задачу найти товар, подходящий под какие-то свойства.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255154
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторты озвучивал задачу найти товар, подходящий под какие-то свойства.
я озвучил задачу создание системы для работы со свойствами товаров.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255159
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmayton,
там хорошо описали проблему свойств. но решение очень частное. я б не стал на него ориентироваться.
Там просто не учтен поиск непрерывных величин типа цена, вес, габариты но их
можно учесть на 2-й фазе поиска типа JOIN id-s товаров полученых из Редис
с MySQL.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255167
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonвадяmayton,
там хорошо описали проблему свойств. но решение очень частное. я б не стал на него ориентироваться.
Там просто не учтен поиск непрерывных величин типа цена, вес, габариты но их
можно учесть на 2-й фазе поиска типа JOIN id-s товаров полученых из Редис
с MySQL.
начнёш это реализовать - получится велосипедостроение....
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255181
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmaytonпропущено...

Там просто не учтен поиск непрерывных величин типа цена, вес, габариты но их
можно учесть на 2-й фазе поиска типа JOIN id-s товаров полученых из Редис
с MySQL.
начнёш это реализовать - получится велосипедостроение....
Возможно. Я не строил интернет-магазины.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255187
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторты озвучивал задачу найти товар, подходящий под какие-то свойства.
я озвучил задачу создание системы для работы со свойствами товаров.
в чем проблема? у тебя бесконечное число свойств определенного типа. текст пусть. ты можешь создать формально универсальный класс "свойство" и там мешок полей в нем сделать предопределенных. числовые и текстовые. пожалуйста, можешь называть каждое свойство по своему. не вижу проблемы.

искать товар по свойству. - пжалста. хкл или классический критерий навроде:

Код: java
1.
2.
3.
Criteria criteria = session.createCriteria(Good.class)
  .createCriteria("properties","p")
  .add(Restrictions.eq("p.propertyField","field value"));



впрочем, это суть джоин.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255196
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторв чем проблема?

я озвучил задачу: создание системы для работы со свойствами товаров.
ты же вырываешь из системы кусочек и его решение выдаёшь за решение для всей системы.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255198
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTв чем проблема?
Проблема в производительности. Реляционки плохо ищут в EAV. И к ним сбоку
подставляют альтернативные механизмы поиска. Текстовый поиск. Биткарты.
Денормализуют.

А то что ты нарисовал - это вообще не про это. И это не проблема.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255226
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

у меня вот возникала задача поиска по 1e6 товаров (до 1e9 атрибутов), с поиском по совпадению, по диапазону и т.п, еще и с нормальными требованиями по производительности (10ms на запрос). Никакая СУБД, увы, не справляется и близко, нужно писать собственное решение (впрочем, писать его недолго).
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255228
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3mayton,

Никакая СУБД, увы, не справляется и близко, нужно писать собственное решение (впрочем, писать его недолго).
Отлично. Добавляюсь в твой github
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255234
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3mayton,

у меня вот возникала задача поиска по 1e6 товаров (до 1e9 атрибутов), с поиском по совпадению, по диапазону и т.п, еще и с нормальными требованиями по производительности (10ms на запрос). Никакая СУБД, увы, не справляется и близко, нужно писать собственное решение (впрочем, писать его недолго).
интересно,
но после опытов с mysql 5.7.11 с поиском по like среди 1е7 записей я не уверен что всё так трагично
хотелочь бы посмотреть. есть возможность 1е6 товаров дать для тестов?
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255242
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если взять матрицу для Редиски размером 1е6 на 1е9 то мы получим логический размер

1е6 * 1е9 = 1е15

логических элементов типа true/false или в байтовом представлении это будет

1е15/8 = 125 000 000 000 000 байт = 113 Тб

Вобщем 113 терабайт.

Но я думаю что матрица эта по большей части будет разреженная. Или даже детальнее...
существует класс продуктов для которых некоторые свойсвта не существуют. Например
для холодильника не будет существовать такая опция как FullHD и у плазмы не будет
опций трех-камерности e.t.c.

Тоесть оптимистично... можно побить товары на категории для которых не нужно
резервировать 1e9 атрибутов а достаточно будет 1 тысячи (даже с зацепом на будущие
опции товаров и опции снятые с производтсва).

Таким образом постановка 1е6 на 1е9 может быть изменена на другую. Код Редиса
надо переколбасить под классы товаров с матрицами существенно меньшего размера.

А для поиска на сайте - классификатор товаров все равно активируется поэтому
задача естественным образом упрощается идя от пользовательского use-case.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255365
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
хм, в публичный доступ я этот код не выкладывал. Но, похоже, судя по интересу, надо будет довести до соответствующего состояния.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255366
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

товаров дать, разумеется, не могу. Но кто мешает сгенерить собственный набор, для тестирования хватит. Но там проблемы в основном не в поиске по одному атрибуту, а в поиске по паре десятков одновременно, с разными видами поиска и при этом с обновлением всех цен по какой-нибудь категории. Из готовых решений лучше всего справлялся SOLR, но у него не очень быстрый поиск по диапазону и обновления не очень быстрые (
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255368
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mad_HeadЕсли можете подкрепите примером. Какую структуру можно создать вручную и нельзя сгенерировать по entity? Естественно, что бы это давала какие-то весомые плюсы.

Из самого простого, что сложно делать через hiber: хранение сложных сущностей в полях типа json, с полиморфизмом, обратной совместимостью версий и прочими радостями, которые легко делать через PostgreSQL + Jackson, но почти нереально через ORM. Плюсы - резкий рост производительности )
Я как раз про это рассказывал на последнем РИТе.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255369
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mad_HeadКак по мне - это фраза из разряда "программировать или верстать нужно в блокноте". Просто более высокоуровневые фреймворки нужно изучать и разбираться, что происходит от того или иного действия. А иначе получается преждевременная оптимизация, а это очень большое зло. У меня на прошлой работе были программисты старой школы которые на JDBC + собственное ручный DAO слой исполдьзовали везде. Так они эту часть писали в 3 раза дольше, чем другая команда использующая ORM и в узких местах написавшая native query.

Ну, когда я смогу найти на рынке за разумные деньги разработчика, которые понимает, как работает @Transactional поверх Hibernate на конкретной СУБД (кстати, я пока еще таких вообще не видел, как только начинаешь задавать сложные вопросы - все начинают говорить "наверно все будет хорошо"), то да, наверно можно будет спокойно использовать ORM. А на данный момент ответственные или высокопроизводительные вещи проще писать без ORMа. Кстати, как только нужно работать с изменением структуры СУБД в кластере без останова - то ORM начинает изрядно тормозить разработку. Выигрыш в производительности разработки - только пока в продакшн не вышли, да и то если на jdbc писать совсем не раздумывая. Проверялось )
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255370
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3,
длина поля названия ? структура таблицы? прочие условия?
чтоб было реальное сравнение скорости.
...
Рейтинг: 0 / 0
Размер базы сферического-java-приложения в вакууме.
    #39255371
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА для поиска на сайте - классификатор товаров все равно активируется поэтому
задача естественным образом упрощается идя от пользовательского use-case.
Это пока не возникают запросы вида "что-нибудь красное для мальчика от 500 до 1000 рублей". И тут уже классификатор не работает.
Собственно, как я ругаюсь каждый раз, когда ищу себе читалку на Яндекс.Маркете, где телефоны, планшеты и электронные книги - три разных категории, а мне-то нужно искать среди всех сразу.
Когда можно сузить поиск до категории товаров, то проще завести по таблице или БД на каждую категорию и искать там. Собственно, когда-то в Маркете так и было (сейчас - не в курсе).
...
Рейтинг: 0 / 0
25 сообщений из 87, страница 3 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Размер базы сферического-java-приложения в вакууме.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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