Запрос к EAV MYSQL базе

MySQL базы данных sql eav

Существует база со структурой:
field_id, field_value, user_id

Значения например такие:
1,3,16
2,8,16
3,1,16
4,2,16
5,2,16
1,1,17
2,5,17
3,2,17
4,3,17
5,2,17
...

Нужно сделать выборку
select user_id where field_id = 1 and field_value = 3
чтобы для этого же user_id также совпадало значение другой строки
field_id=2 and field_value = 8
и так далее. Количество выбираемых полей может быть любым.

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

Примечание:
С индексами понятно.

Нужно создать запрос вроде такого:
SELECT user_id FROM table
LEFT JOIN table ON field_id = 1 and field_value = 3
LEFT JOIN table ON field_id=2 and field_value = 8

В join запросах я не силён, поэтому прошу помощи. Что лучше использовать ON или USING в данном случае и как правильно составить запрос?
Ответы:
по поводу производительности - создать индексы по полям которые участвуют в выборке (запросе)
А вот задание не понятно, если не разобрались с принципом работы реляционных баз данных - перечитываем еще раз.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.