まとまりのないブログ

something which something is something

mysql

全文検索エンジンmroongaを使ってみた

投稿日:

sennaをビルドして使っていたのだけれど、レコード件数と速度に限界を感じてきていたのでその後継といわれるmroonga3.04を使ってみた。使ってみた感想は、mroongaストレージエンジンでの全文検索はsennaに比べて格段に早くなっている。しかもメモリ使用量がsennaで使っていた時ほどいらなくなっている。体感で30倍ぐらい早くなった気がする(多少誇張あり)。メモリ8GBしか積んでいないDBサーバにレコード件数3億以上のテーブルでガンガン検索したというのにmysqlデーモンがクラッシュしないのはどうしたことか。sennaでやってたときはすぐに落ちるかメモリ使いきって結果セットが返ってこないかとかばかりだったのに。今のところ不満はほとんどなくて、作成されるファイルがわけわからなくて引越しに手間がかかるかもしれないということぐらい。あとdelete文で1000万レコード実行したらいつまでたっても終わらなかったのでちょっと怖い。

InnoDB+mroongaもためしてみたが、そちらの方はmroongaストレージエンジンを使った時よりパフォーマンスは出なかった。

IN BOOLEAN MODE の挙動がsennaとは違うような気がする。

-mysql

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

Client requested master to start replication from impossible position ( server_errno=1236)

mysqlのレプリケーションでのエラー。Client requested master to start replication from impossible position ( server_e …

no image

ssdでデータベースサーバを構築してみた

現状ではまだ手を出すのは早いかもしれないssdでデータベースサーバを構築してみた。実験的な意味で。

no image

ECC機能付きメモリとECC機能付きではないメモリの違い

メモリには様々な規格があるが、ECC機能が有るか無いかという違いもある。メモリのECC機能とは簡単に言うとデータのエラーをチェック・修正をする機能のことで、サーバなどの稼動に信頼性が求められるマシンに …

no image

SQL_CALC_FOUND_ROWSの効果

mysqlでは行数のカウントをするのにSQL_CALC_FOUND_ROWSというのを使うことができるようだが、where句に条件を指定した場合だとcount(*)でレコードをカウントする場合と大差な …

no image

結果の行数をカウントする

mysqlで結果の行数をカウントするsql文は、 seletc count(*) from foo; で取得するのが最も簡単ではあるけれど、レコード数が膨大な場合にはパフォーマンスの面で問題になる場合 …