172 похожих чатов

Добрый день! Есть две таблицы. В одной хранится общая информация о товаре

– item (price, description, created, updated).
Во второй таблице хранятся так называемые «свойства товара» – item_field (item_id, field_id, value).
Есть ещё третья таблица, где хранятся сами свойства – field (title, description), но мы их пока что не затрагиваем, оно не влияет на процесс (там ещё есть field_value с интернационализацией и т.д.).

Проблема: в таблице item уже примерно 50к записей, в таблице item_field – 500k. Выборка занимает до 1 секунды. 8 ядер, 32 гб оперативки. Дальше – хуже. Выборка делается с джойнами. Отдельно инфа о товаре, отдельно список значений с названиями полей.

Какие индексы городить и/или куда смотреть в этой ситуации?

2 ответов

14 просмотров

item: (item_id) item_field (item_id, field_id, value) (field_id, value, item_id)

EAV вообще работает (разнообразно, в т.ч. в плане производительности некоторых запросов) плохо (т.е. думать надо было раньше, перед тем, как использовать эту "модель"). Впрочем, покажите \d таблиц, запрос(ы) и их EXPLAIN (ANALYZE, BUFFERS).

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта