Какие-то индексы там были, но беда была именно в этих двух таблицах.
Нужно получить сущность А по id. Получаем из бд запись из таблицы сущностей и все связанные с ней записи из таблицы свойств. Если свойство оказалось в свою очередь сущностью - делаем для него аналогичную операцию и так далее.
Ну то есть ебаный велосипед, который решается нормальной схемой в бд (я в итоге этот ужас разбил на 3-4 десятка таблиц) + ормкой с нормальными navigation property/lazy loading.
Но простых запросах оно еще жило, а не генерации отчетов, для которой нужно половину бд перелопатить, умирало.
Лет 5 назад меня наняли переписать полностью один проект.
Бд на postgres, две таблицы. В первой id и тип сущности. Вторая связана с первой один ко многим и в ней тип свойства и его значение. Сверху все густо обмазано хранимками с бизнес- логикой.
Затем бэкенд-прослойка на руби и фронтенд соплями на jquery.
Некий сумрачный гений это наговнокодил, получил деньги и свалил.
К тому времени, как меня наняли, половина запросов в бд занимала уже десятки секунд.
Это был травмирующий опыт, но на год работой этот парень меня обеспечил.
У меня вообще складывается ощущение, что теперь мы пишем не одно большое приложение, а сразу два.
Большой и сложный бэкенд с кучей логики, интеграций итд итп, а сверху не менее большой и сложный spa на каком-нибудь фрэймворке.
Правительство рептилоидов во главе с Пыней убедило половину населения земного шара сидеть по домам, чтобы рептилоидам было удобнее вводить огранения и ставить людям анальные зонды.
Какие герметичные двери, поехавший? Смысл в том, чтобы люди меньше контактировали друг с другом и не заболевали одновременно в больших количествах, а не в том, чтобы спрятать от злого вируса в герметичном бункере и никогда не выходить.
Я и останусь. А жену переводят с удаленки на работу в офисе. Ну и знаешь, я как-то не хочу, чтобы в городе был пиздец с эпидемией, даже если это не затронет лично меня.
Нужно получить сущность А по id. Получаем из бд запись из таблицы сущностей и все связанные с ней записи из таблицы свойств. Если свойство оказалось в свою очередь сущностью - делаем для него аналогичную операцию и так далее.
Ну то есть ебаный велосипед, который решается нормальной схемой в бд (я в итоге этот ужас разбил на 3-4 десятка таблиц) + ормкой с нормальными navigation property/lazy loading.
Но простых запросах оно еще жило, а не генерации отчетов, для которой нужно половину бд перелопатить, умирало.
Бд на postgres, две таблицы. В первой id и тип сущности. Вторая связана с первой один ко многим и в ней тип свойства и его значение. Сверху все густо обмазано хранимками с бизнес- логикой.
Затем бэкенд-прослойка на руби и фронтенд соплями на jquery.
Некий сумрачный гений это наговнокодил, получил деньги и свалил.
К тому времени, как меня наняли, половина запросов в бд занимала уже десятки секунд.
Это был травмирующий опыт, но на год работой этот парень меня обеспечил.
У меня вообще складывается ощущение, что теперь мы пишем не одно большое приложение, а сразу два.
Большой и сложный бэкенд с кучей логики, интеграций итд итп, а сверху не менее большой и сложный spa на каком-нибудь фрэймворке.
Правительство рептилоидов во главе с Пыней убедило половину населения земного шара сидеть по домам, чтобы рептилоидам было удобнее вводить огранения и ставить людям анальные зонды.
Какие герметичные двери, поехавший?
Смысл в том, чтобы люди меньше контактировали друг с другом и не заболевали одновременно в больших количествах, а не в том, чтобы спрятать от злого вируса в герметичном бункере и никогда не выходить.
Ну и вообще - как-то слишком жирно.
Ну и знаешь, я как-то не хочу, чтобы в городе был пиздец с эпидемией, даже если это не затронет лично меня.
Россия, Калининград