Без использования индекса база данных должна выполнить «полное сканирование таблицы». Это похоже на то, что вы просматриваете книгу по одной странице за раз, чтобы найти то, что вам нужно.
При этом компьютеры намного быстрее людей. Это действительно зависит от того, сколько нагрузки ваша система имеет. Используя MySQL, мы успешно внедрили поисковую систему в таблицу ведущей информации. Природа проблемы была та, которая не могла быть решена обычными индексами (включая полный текст). Таким образом, мы разработали его для питания с использованием полного сканирования таблицы.
Это включало создание как можно более узких таблиц с данными поиска и объединение их в более крупную таблицу со связанными, но не поисковыми данными.
В то время (4 года назад) 100 000 записей можно было сканировать за 0,06 секунды. 1 000 000 записей заняли около 0,6 секунд. Система все еще активно используется с миллионами записей.
Если ваши данные должны превышать 6 цифр записей, вы можете пересмотреть их, используя полнотекстовый индекс, или провести некоторое исследование по инвертированным индексам.
Пожалуйста, прокомментируйте, если вам нужна дополнительная информация.
Редактировать: Таблицы поиска были максимально узкими. В идеале 50-100 байт на запись. ENUMS и TINYINT - отличные средства экономии пространства, если вы можете использовать их для «сопоставления» строковых значений другим способом.
Поисковые запросы были сгенерированы с использованием класса PHP. Они были просто:
-- DataTable is the big table that holds all of the data
-- SearchTable is the narrow table that holds the bits of searchable data
SELECT
MainTable.ID,
MainTable.Name,
MainTable.Whatever
FROM
MainTable, SearchTable
WHERE
MainTable.ID = SearchTable.ID
AND SearchTable.State IN ('PA', 'DE')
AND SearchTable.Age < 40
AND SearchTable.Status = 3
По сути, две таблицы были объединены по первичному ключу (быстро), а фильтрация выполнялась путем полного сканирования таблицы в таблице поиска (довольно быстро). Мы использовали MySQL.
Мы обнаружили, что, имея формат записи == "FIXED" в таблицах MyISAM, мы можем увеличить производительность в 3 раза. Это означало, что не было ни капель, ни вархаров, и т.д ...
Дайте мне знать, если это поможет.