Как сделать выборочный запрос более эффективным?
У меня есть таблица " Клиенты с миллионами записей" по 701 атрибутам (столбцам). Я получаю CSV-файл с одной строкой и 700 столбцами. Теперь на основе этих 700 значений столбцов я должен извлечь идентификаторы из таблицы " Клиенты".
Теперь очевидно, что я запускаю запрос на выборку со всеми 700 значениями в предложении where.
Мой вопрос заключается в том, что если я сначала извлечу таблицу меньшего размера, используя только один атрибут в предложении where, а затем снова получу выборку на основе второго атрибута в предложении where... и повторю этот процесс для всех атрибутов, будет ли это быстрее? Или вы можете предложить какой-нибудь другой метод, который мог бы сделать это быстрее?
1 ответ
Постарайтесь понять логику этих 700 атрибутов. Между ними могут быть зависимости, которые могут помочь уменьшить количество атрибутов до чего-то более "реалистичного".
Затем я использовал бы ту же технику, чтобы посмотреть, смогу ли я выполнить меньшие запросы, которые выиграли бы от индексов в главной таблице. Каждый раз, когда я сохраняю результат во временной таблице (сокращая число или строки в таблице tmp), индексирую временную таблицу для следующего шага и повторяю ее до получения окончательного результата. Пример: если у вас есть атрибуты даты: попробуйте изолировать все записи за год, затем за день и т. Д.
Постарайтесь сохранить сложные запросы для конца, так как они будут работать с меньшими таблицами tmp.