может mysql обрабатывать поиск с несколькими различными столбцами? - PullRequest
0 голосов
/ 09 июля 2020

У меня есть интерфейс поиска с несколькими полями поиска (около 10)

order count (min, max)
order value (min, max)
order date (min, max)
followers (min, max)
facebook (min, max)
instagram (min, max)
twitter (min, max)
youtube (min, max)
linkedin (min, max)

Пользователи могут вводить значения для любой комбинации фильтров. например,

order count min: 10, order date max: 2020-05-01, followers min: 10000

Это вариант использования, который может покрыть mysql? (Меня беспокоит, что для каждой возможной комбинации фильтров требуются отдельные индексы) Нужно ли мне использовать специализированные решения для такого рода запросов? (например, elasticsearch, algolia и др. c.)

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

filter_values_integers
id, object_id, filter, value
1, 1, followers, 9999
2, 1, instagram, 555
3, 2, followers, 2893
...

Первый вариант (отдельные столбцы) потребует много индексов, а второй полагается на соединения. К сожалению, обе попытки имеют очень низкую производительность.

Я был бы признателен, если бы кто-нибудь мог указать мне правильное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...