sql >> データベース >  >> RDS >> Mysql

このレーベンシュタイン距離計算を最適化する方法

    levenshtein_ratioだと思います あなたが書いた(または他の場所から含まれているかもしれない)関数です。その場合、データベースサーバーは、インデックスを使用する通常の意味でそれを最適化できません。つまり、他の結合条件の結果であるレコードごとに呼び出す必要があるということです。内部結合を使用すると、これらのテーブルサイズでは非常に大きな数になる可能性があります(最大8000 * 250000 =20億)。これで、呼び出す必要がある合計回数を確認できます:

    SELECT
          count(*)
       FROM
          library a,
          classifications b
       WHERE  
          a.`release_year` = b.`year`
          AND a.`id` IS NULL
    

    それはなぜそれが遅いのかについての説明です(それを最適化する方法の質問に対する答えではありません)。これを最適化するには、参加条件に制限要因を追加して、ユーザー定義関数への呼び出し回数を減らす必要があります。



    1. MariaDBでのCHAR_LENGTH()のしくみ

    2. Oracleの引用符で囲まれたフィールドを含むCREATEステートメント

    3. JDeveloper / SQL Developerがクレデンシャルを永続化するために使用している暗号化技術を知っている人はいますか?

    4. PHPMySQLインサートが機能しない