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

MySqlクエリでのRegExとLIKEのパフォーマンス

    LIKE条件は正規表現よりも迅速に評価できるため、より高速になる可能性があります。そのため、ほとんどの行がテストに失敗した場合は、より高速になる可能性があります。ただし、成功した行に対して1つだけではなく、2つのテストを実行する必要があるため、ほとんどの行が成功した場合は遅くなります。また、オプティマイザーが最初に実行することを選択した式によっても異なります。

    このようなものがあれば、さらに大きなスピードアップを目撃することができます:

    SELECT * FROM (
       SELECT * FROM lineage_string
       WHERE lineage LIKE '179%'
    ) WHERE lineage regexp '^179(/|$)'
    

    LIKE '179%'は sargable 。多くの行をチェックする必要はまったくありません。

    いつものように、確実にするための最良の方法は、実際のデータで自分でそれを測定することです。



    1. pgAdminでユーザーを作成する方法

    2. SQL Server SHOWPLAN_TEXT

    3. nodejsを使用してawsathenaを使用する方法は?

    4. ウェブページの取得が見つかりません。フォームでタイムアウトエラーが発生します