Simpleエンジニア

システム開発の備忘録

MySQL の Explain で "Select tables optimized away" って?

2010年07月28日 16時00分43秒 | データベース
MySQLチューニング時に、
MAXやCOUNTを取っていると時々見るExtraのフレーズのひとつ、
<Select tables optimized away>

idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away

長ったらしいのでだめなの?と思ってしまいそうだが、
真ん中が全部NULLになっているように、
インデックスすら使用していませんよ、という意味らしい。

ある意味、using index や using where よりも最強。

[Tokyo Cabinet] Tokyo Cabinet から始める高速・簡易データベース 2

2010年03月30日 19時19分29秒 | データベース
<<ハッシュデータベース>>

ハッシュとは
たくさんの情報群に対して、
名前と情報を1対1で結びつけたもの。
わかりやすく言うと、
似たような情報に一つ一つ固有のラベル(同じ名前がないように)をつけて、
まとめて扱うための仕組み

ラベルのことをキー(Key)
情報のことをバリュー(Value)と呼ぶことが多い。

<こんなときハッシュデータベースを使う>
・1つ(だけ)のKeyを直接指定しvalueを引き出す場合
 →ログイン認証マスタと呼ばれるテーブル など
・value の中身から一定の条件(例:appleというキーワードが入っている等)
 で使う場合には向かない
 →テーブルデータベースを使いましょう
・ログ収集
 →Keyから特定の部分 を抜き出す形式の場合は、B+Treeデータベースにするか、
  ログを集めておいてあとで変換・分析してしまうのが良い

次回は、Tokyo Cabinet で ハッシュデータベースを扱う例をまとめてみたいと思います。

[Tokyo Cabinet] Tokyo Cabinet から始める高速・簡易データベース 1

2010年03月18日 21時11分12秒 | データベース
データベースは使いたいけど、
・テーブル1個だけあれば十分だよ
・SQLなんて使いたくないよね
・リレーショナルみたいな高度な技術は必要ないよね
・そもそもデータベースって重いよね
・容量問題をなんとかしたいよ
・DBサーバが止まったら動かなくなるのは困るよ
・そもそもデータベースの知識を覚えてもほとんど無駄じゃない?

といった問題の解決案として、
Tokyo Cabinetでどうにかならないか?
を書いて見る。

ここがイイ!
○QDBMやGDBMの後継者なんです
○MySQLみたいにサーバとして動かすこともできます
○C/Perl/Ruby/Java/Rua で使えます
○早いです
○トランザクション(「今の、やりなおし」機能)があります
○国産で、mixiなどに使われます
○最大容量問題にも、データ圧縮問題にも、あと10年は戦える

ショボーン
△PHP/Python等だとうまく使えない
△リレーショナル(MS Accessみたいな使い方)をするには疲れる
△(特に日本語の)使用例があまりWebに載ってない


その2へ続く