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

ファイルを調べたり、BLOBを介してSQL LIKE%x%クエリを実行したりすると、一般的に高速なものは何ですか?

    grepする100万個のファイルがある場合は、(私が知っている限りでは)正規表現を使用して各ファイルを調べます。

    すべての目的と目的で、LIKE演算子または正規表現を使用してテーブルの行を一括クエリすると、テーブルの行に対して同じことを行うことになります。

    私自身のgrepの経験では、完全な単語が1つも含まれていないものを探すことはめったにありません。そのため、データベースを利用して、検索するセットを減らすことができる場合があります。

    >

    MySQLにはネイティブの全文検索機能がありますが、InnoDBを使用していないことを意味するため、使用しないことをお勧めします。

    ここでPostgresからそれらについて読むことができます:

    http://www.postgresql.org/docs/current/static/textsearch .html

    tsvector列にインデックスを作成した後、2つのステップで「grep」を実行できます。1つは漠然と修飾される可能性のある行をすぐに検索し、次に真の基準で別の行を検索します。

    select * from docs where tsvcol @@ :tsquery and (regexp at will);
    

    これは、grepが実行できるものよりも大幅に高速になります。



    1. MySQLとPHPを使用してデータベースにタグを保存する方法は?

    2. Mysql/Mariadbの一意のインデックスを作成するEctoが失敗しました

    3. MySQLでテーブル名として数字を使用することは許可されていますか?

    4. mysqlは、結合されたクエリの個別の値に対してのみカウントします