Help us understand the problem. What is going on with this article?

SQLアンチパターン:プアマンズ・サーチエンジン(貧者のサーチエンジン)

More than 3 years have passed since last update.

SQLアンチパターンを読み始めたので、1つ1つ書いてのメモです

目的

  • 全文検索を行う

SQL について

  • SQL(および SQL の背後にあるリレーショナル理論)の原則の 1 つは、列の値がアトミックであること
    • 値が別の値と比較できること
    • 部分文字列の比較はSQLにとって非効率

アンチパターン

  • パターンマッチ述語を使用する
    • LIKE
    • 正規表現(MySQL は日本語に対応していない)
    • テーブルスキャンになる(インデックスは使えない)のでパフォーマンスの低下

用いてもいいパターン

  • 使用頻度が極めて低い
  • 単純なケース

解決策

  • 適切なツールを使用する
    • SQL の代わりに専用の全文検索エンジンを使うこと
    • ベンダーごとに全文検索エンジンがある
    • サードパーティのもある

まとめ

問題を解決するために、必ずしも SQL を使う必要はありません。

感想

全文検索は、専用のを使いましょう!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away