各務 洋
kagam****@outwa*****
2015年 9月 11日 (金) 18:40:43 JST
お世話になります、各務です。 >>>> * TIMESTAMP: '1970-01-01 00:00:01' UTC から '2038-01-19 03:14:07' UTC と '0000-00-00 00:00:00' >>>> * DATETIME: '0000-01-01 00:00:00' から '9999-12-31 23:59:59' >>>> * DATE: '0000-01-01' から '9999-12-31' >>>> ※ 64bit版 >> -- Snip > 今回の件について整理してみたんですが、追記する必要はないなぁ > と思いました。 > > というのは、システムがサポートしていれば(例えば64bitなLinux > なら)、Mroongaの方がMySQLよりも値の範囲が広いので、Mroonga > での制限より前にMySQLの制限に引っかかり、他のストレージエン > ジンと同じ値を扱えるからです。 > > もちろん、「0月」や「0日」といった不正な日付を扱えない、NULL > を扱えないという制限はあるのですが、それはすでに該当ドキュメ > ントに書いてあります。 ふむふむ、なるほど。 個人的にはもっとカジュアルユーザーも視野に、 既存のテーブルを ENGINE = Mroonga にしてみた! なんかエラーでたけど、ちょっと動かしてみた。 ENGINE = innodbに戻してみた。 なんかエラーでた、これ何? という人でも、 * TIMESTAMP: '1970-01-01 00:00:01' UTC から '2038-01-19 03:14:07' UTC と '0000-00-00 00:00:00' * DATETIME: '0000-01-01 00:00:00' から '9999-12-31 23:59:59' * DATE: '0000-01-01' から '9999-12-31' ※ MySQL の型より扱える範囲が広いです。(但し、各OSに依存します) ※ 上記は 64bit 版 Cent OS 6 で確認。 ※ Free BSD 版等、他のOSは報告希望。 ※ 32bit版は使っている人がいるかも含めて報告希望。 と、どこかに書いてあるだけで、何が起きたか気づきやすくなったり、もっと 気軽に手伝える人達が増えるような気がするのです。 どうでしょうか? (32bit版はそういないでしょうという点はまったくもって同感です) > で、実は、grndbというツールがあって、それでインデックスが壊 > れているかどうかとインデックスの復旧をできます。 > http://groonga.org/ja/docs/reference/executables/grndb.html > > MySQLを起動する前に↑でチェックして必要なら復旧するというス > クリプトを仕込んでおくと自動化できます。 > > なお、インデックスは(元データがあるので)復旧できますが、デー > タが壊れていた場合は(元データがないので)復旧できません。バッ > クアップなどからリストアする必要があります。 おぉぉ、ありがとうございます! これ確認してみます。 P.S Mroonga を初めて使ってみる人向けに、 FULLTEXT INDEX を COMMENT 'normalizer "NormalizerMySQLUnicodeCIExceptKanaCIKanaWithVoicedSoundMark"' で張って、 MATCH(フィールド名) AGAINST('*D+ キーワード1 キーワード2' in boolean mode) で色々検索してみて、 調整したい点が出てくるようなら、上記の他の種類を調べてみよう。 と書いてあるだけでも、相当幸せになれる気がします。 ---- 各務 kagam****@outwa*****