タグ

tipsとmysqlに関するmaxyのブックマーク (2)

  • koress.jp: Ruby on Rails + MySQL 日本語全文検索まとめ

    「よいさいと」で日語の検索やろうと思って忘れていました。せっかくなので、最近のMySQLの日語全文検索の事情についてまとめてみます。2007/10/3時点。 ちなみに、以前に別のアプリで全文検索を実装したときには、例の如く「メカブで分解して16進の文字列で格納する」という方法でやっていたのですが、もうやりたくないです。 アルゴリズムいろいろ インデキシングの方法です。 単語分かち書き 形態素解析エンジンを使って、日語の文章を分解し、スペースを挿入してインデキシング。 形態素解析のエンジンにはmeCabとかchaSenがある。 インデックスのサイズはn-gramと比較して小さい。 辞書に登録されていない単語がある場合にはナイーブ。「脳トレ」「みっくみっく」 n-gram 基的に文章の任意の位置から後方n文字を切り出してインデキシングする。 bigramの場合 「その域に達していない」

  • MySQLノウハウ

    いろいろなからメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),

  • 1