Resolvendo quebra-cabeças: Encontrando todas as palavras em uma palavra maior em PHP

Então eu tenho um banco de dados de palavras entre 3 e 20 caracteres. Eu quero codificar algo no PHP que encontre todas as palavras menores que estão contidas dentro de uma palavra maior. Por exemplo, na palavra "para dentro" há as palavras "chuva", "vitória", "livrar", etc.

No começo eu pensei em adicionar um campo às tabelas Words (Words3 a Words20, denotando o número de letras nas palavras), algo como "LetterCount" ... por exemplo, "rally" seria representado como 10000000000200000100000010: 1 instâncias de a letra A, 0 instâncias da letra B, ... 2 instâncias da letra L, etc. Em seguida, percorra todas as palavras em cada tabela (ou uma tabela se o comprimento de destino das palavras encontradas for especificado) e compare as LetterCount de cada palavra para o LetterCount da palavra de origem ("inward" no exemplo acima).

Mas então eu comecei a pensar que isso colocaria muita carga no banco de dados MySQL, assim como o script PHP, chamando o LetterCount de cada palavra, comparando cada dígito com o da palavra fonte, etc.

Existe uma maneira mais fácil, talvez mais intuitiva, de fazer isso? Estou aberto a usar procedimentos armazenados se isso ajudar na sobrecarga de alguma forma. Apenas algumas sugestões seriam muito apreciadas. Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion