あなたは実際にあなたを助けるには少なすぎる情報を与えています。
1)私の最初の推測は、スキャンされる行の量を減らす他のWHERE条件を作成しようとすることです。
2)それが不可能な場合...テーブルライブラリのタイトルと分類がわかっている場合、1つのアイデアは、すべてのデータが次のようにすでに計算されているテーブルを作成することです。
TABLE levenshtein_ratio
id_table_library
id_table_classifications
precalculated_levenshtein_ratio
したがって、次のクエリを使用してテーブルにデータを入力します。
insert into levenshtein_ratio select a.id, b.id, levenshtein_ratio(a.title, b.title) from library, classifications
次に、クエリは次のようになります。
SELECT
*
FROM
library a LEFT JOIN
classifications b ON a.`release_year` = b.`year`
LEFT JOIN levenshtein_ratio c ON c.id_table_library = a.id AND c.id_table_classifications = b.id
WHERE
a.`id` IS NULL
AND precalculated_levenshtein_ratio > 82
このクエリは、おそらく元の2秒以内になります。
このソリューションの問題は、テーブルaとbのデータが変更される可能性があるため、更新を維持するためのトリガーを作成する必要があるという事実です。