У меня есть следующий TABLEA:Как избежать полного сканирования таблицы для запроса mutliple searchingable columns?
id | col1 | col2 | col3 | ... | col66
-------------------------------------
999| 1 | 0 | 0 | ... | 1
Все столбцы colX являются и возможен поиск Есть 66 из них, что означает, что создание эффективного индекса не представляется возможным (по крайней мере я так думаю).
Запросы могут выглядеть так:
SELECT id FROM tableA WHERE col21=1 AND col31=1 AND col64=1
Как вы можете видеть, что я только нужно извлекать строки с определенным столбцам быть установлен в «1». Набор столбцов может отличаться. Знаете ли вы какой-либо способ сделать это без полного сканирования таблицы, требующего много времени? Я думаю, что я уже попробовал все, но не повезло :-(Спасибо
Действительно ли эти запросы медленны или вы просто не можете согласиться с тем, что mysql использует полное сканирование? – peterm
@peterm Они на самом деле медленные. Я бы не возражал против полного сканирования таблицы, если в таблице было всего 5 строк :-) В моем случае для выполнения запроса, который недопустим, требуется около 0,4 секунды. –