[groonga-dev,03492] Re: Mroonga の timestamp 型の範囲について

Back to archive index

各務 洋 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*****




groonga-dev メーリングリストの案内
Back to archive index