Нет, просто не делайте этого.
Вместо циклического перебора 10000 элементов, лучше извлечь слова из предложения или текста, а затем добавить их в запрос SQL, и таким образом вы будетеесть все необходимые записи.Это, безусловно, более эффективно, чем предложенное вами решение.
Вы можете сделать это следующим образом, используя PHP:
$possible_keywords = preg_split('/\b/', $your_text, PREG_SPLIT_NO_EMPTY);
Выше разделит текст на границы слов и будетне возвращайте пустых элементов в массиве.
Тогда вы можете просто создать запрос SQL способом, подобным следующему:
SELECT * FROM `keywords` WHERE `keywords`.`keyword` IN (...)
(просто поместите разделенный запятыми список извлеченных словв скобках)
Вероятно, вам следует отфильтровать массив $possible_keywords
перед выполнением запроса (чтобы включить только ключевые слова с соответствующей длиной и исключить дубликаты) плюс сделать индексированный столбец keyword
.