Query speed improvements
Right now you have only added one index on words for word. Therefore your query will right now result in at least one full table scan for both words and synonyms, probably even more - that might depend on your DBMS and it's query optimizer's abilities.

Try adding an index on words for word_id and on synonyms for at least source_index. This way your query will use the index and not do a full table scan.

You could probably improve on that by using covering indeces, e.g. (word_id, word) on words and (source_index, destination_index) on synonyms.