2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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

目的

  • 全文検索を行う

SQL について

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

アンチパターン

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

用いてもいいパターン

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

解決策

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

まとめ

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

感想

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

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?