Это сложный вопрос, так как вам нужно много знать о настройке и настройке базы данных MySQL, чтобы справиться как с нагрузкой, так и с данными. С таким небольшим количеством пользователей у вас все будет в порядке с точки зрения соединений, поэтому время выполнения является настоящим узким местом.
Если вы работаете на 32-битном сервере, максимальное количество строк в таблице составляет 4,2 миллиарда и 4 ГБ без каких-либо изменений конфигурации. Вы можете увеличить ограничение таблицы в 4 ГБ, но, насколько я знаю, ограничение на 4,2 миллиарда строк является максимальным для 32-разрядного сервера.
Ваша таблица выглядит нормально, но я бы изменил "тип" на ENUM, чтобы данные не были текстовыми (уменьшает общий размер таблицы).
Вам нужно будет правильно проиндексировать эту таблицу, и, исходя из того, как она выглядит по теме, введите. Без сложного запроса чисел / примеров с объединениями было бы трудно угадать, как быстро будет выполняться этот запрос, но если он правильно проиндексирован и имеет большую мощность, у вас все будет в порядке.
Вы всегда можете добавить слой Memcache между PHP и MySQL, чтобы кэшировать некоторые результаты, чтобы вы могли получить лучшую производительность, если они выполняют похожие поиски. С «сотнями разных критериев», однако, вы, скорее всего, попадете в базу данных совсем немного.
Наоборот, вы также можете взглянуть на некоторые опции NoSQL, такие как MongoDB, которые могут лучше подходить в зависимости от ваших данных.