Задать вопрос
  • Как произвести поиск по огромной базе моментально и вывести данные?

    @tyunn
    Программирую на Perl, также умею Python, JS, React
    Можно попробовать так:
    1. Получить итоговый запрос который выдает ORM, наверняка у ORM есть опция для этого
    2. Выполнить EXPLAIN для этого запроса, на БД с кол-вом и качеством данных близких к реальному
    3. Проанализировать EXPLAIN из п.2, таки образом понять, какие индексы пытается использовать MySQL
    4. Посмотреть какие индексы есть на таблицах, в MySQL - `SHOW INDEX FROM ...`
    5. Подумать, нельзя ли изменить запрос, чтобы он использовал индексы, можно все тем же EXPLAIN

    Если этот запрос достаточно частый, тогда возможно есть смысл добавить индексы

    Индексы нужно добавлять только по тем полям которые точно используются в запросе, во первых серверу меньше читать с диска индексы, а во вторых, так работают составные индексы, обратите внимание на раздел про составные индексы в статье "Индексы MySQL https://highload.today/indeksy-v-mysql/'
    Кстати хорошая статья, рекомендую
    Ответ написан
    Комментировать