ちょっと硬派なコンピュータフリークのBlogです。

カスタム検索

2015-06-26

MySQL・PostgreSQLユーザーグループ(MyNA・JPUG)合同DB勉強会で発表した資料を公開しました。「データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜」

表題の通り、MyNAとJPUGの合同DB勉強会で発表をしたので資料を公開した。



内容の詳細はスライドそのものを見ていただくとして、言いたいことの主旨はこうである。世の中に完璧なデータモデルはないので、NoSQLは当然の如く必要になる。だが、何でもかんでもNoSQLを使えば良いというものではない。むしろアプリケーションが必要としているデータモデルが何かということをよく理解し、本当に必要な場合にこそ、NoSQLを使うべきなのである。つまり「ご利用は計画的に!」ということだ。

大切なのは、様々なデータモデルを理解し、アプリケーションにとってベストな製品を選択するということだ。ベストなのがRDBかも知れないし、そうでないかも知れない。最適なデータモデルを選択した場合に、出来上がったものの性能も最高になるし、開発効率も最も良くなる。データベースの主流はRDBだが、それはリレーショナルモデルがカバーできる範囲がとても広く、他のアプローチでは代替できないというちゃんとした理由がある。それ以外の選択肢が過去にはあまり流行らなかったのには理由があるのだ。

だから、単にNoSQLを使うだけでトータルの人件費を安くできる・・・なんてことはあり得ない!!絶対にだ!!

アーキテクチャを選択する立場にある人は、ぜひとも合理的な判断をしていただきたいと思う。

ところで、今回はオープンソースのRDBであるMySQLとPostgreSQLが合同で勉強会をするという、個人的にはエポックメイキングなものであった。ここ最近ではほとんど聞いたことがなく、個人的には合同勉強会に出席したのは初めてのことである。

本来であれば、会社や立場の垣根を超えて協業ができるのがオープンソースの利点であるはずである。であれば合同勉強会を阻むものは何もないはずだ。同じRDBというジャンルの製品であるので、話が通じることも多いだろう。面白いので関係者各位にはもっと開催する方向でお願いしたいと思う。

2015-06-17

RDBにおけるキャッシュという考え方

RDBの専門家として日々活動している中で気づいたことのひとつに、「RDBはデータへのアクセスの実装をインデックスに頼っているが、インデックスは全ての問題を解決できるほど万能ではない」ということがある。インデックスというのはとても強力な部品であり、その点には全く異論はない。だが、世の中の全ての問題(クエリ)を解決できるほど、柔軟性に富んだものではないということだ。RDBは、どのインデックスを使ってデータへアクセスするかということを、オプティマイザを用いて判断する。大抵のRDB製品では、オプティマイザはよい仕事をするので、インデックスとオプティマイザの組み合わせによって、ほとんどの問題に対応できる。だが、100%ではないのであり、そのようなケースがシステムの性能問題を引き起こしたり、プログラマ(アプリケーションの設計者)に、NoSQLへ完全に移行したり、クエリ高速化のために非正規化をすると言った、誤った判断に走らせたりする。

こういった問題にとって、全ての元凶となっているのは、インデックスは便利で強力ではあるが万能ではないということに、プログラマが気づいていないことである。

2015-06-15

DB Tech Showcaseで発表したスライドを公開しました:MySQL Cluster 7.4で楽しむスケールアウト

表題の通り、MySQL Cluster 7.4で楽しむスケールアウトというタイトルのスライドを公開した。


2015-06-09

講演の予定等:dbtech showcase、software design 7月号、MyNA・JPUG合同DB勉強会 in 東京

何だか6月は忙しくなってしまった。講演2回、雑誌での執筆1回がある。もし興味があれば講演を聞きに来たり雑誌を買ったりして頂きたい。

2015-06-05

MySQL 5.6リファレンスマニュアル日本語版のお知らせ

MySQL 5.6 リファレンスマニュアル

というわけで、日本語版のマニュアルがリリースされた。これまでMySQL 5.6のリファレンスマニュアルは英語版しか無かったのだけど、公式に日本語版がリリースされる運びとなったので、是非参照して頂きたい。

かつてMySQL 5.1の日本語版マニュアルが存在したのだが、そちらは現在ウェブから参照できなくなっている。(PDF版はダウンロードできるという話も。)MySQL 5.1の日本語版マニュアルは、ぶっちゃけ翻訳があまりイケてなかったので、今後はぜひMySQL 5.6の日本語版を参照してもらいたい。ついでにもう古のバージョンは窓から投げ捨てて、この機会に是非新しいバージョンへ移行してみてはいかがだろうか。

何か問題が見つかった場合には、ぜひバグレポートをお願いします。バグレポートのカテゴリは「Japanese Documentation」を選択してください。

2015-05-01

【書評】GWに読みたいリレーショナル・データベースの入門書2冊

今日は最近出たリレーショナルデータベースの入門書を2冊紹介しよう。献本御礼!!

2015-02-26

お詫び:『理論から学ぶデータベース実践入門』発売延期のお知らせ

既に技術評論社から発表が出ている通り、『理論から学ぶデータベース実践入門』の発売が延期になった。楽しみにして頂いてた方、先行(テスト)販売で購入して頂いた方には、大変申し訳無い。発売日が3月10日へと変更になっているので、購入して頂けるという方はもうしばらくのご辛抱を。なお、既に購入して頂いた方は、技術評論社が交換に応じるとのことなので、問い合わせフォームから連絡をして頂きたい。

ちなみに、発売延期となった原因は、編集側で論理記号の違いをフォントの違いだとご認識したことによるもの。フォントの違いだというぐらいなので、文字の形状は似ており、違いは線があるかどうかとなっている。だが、論理記号の違いは重大であり、意味が全く分からなくなってしまったので、今回の対応となった。既に買ってしまったという方は、OSC等で私と遭遇するチャンスがある場合、私がボールペンで線を付け足すことも可能であるので、そのような対応が希望である場合にはお声がけ頂きたいと思う。

2015-02-02

書籍出版のお知らせ:理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL

来る2月27日、データベースの新書籍を発売させて頂くことになった。タイトルは「理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL」となっている。単に「データベース」と書いてあるが、RDBがメインのテーマの書籍である。

2014-12-25

MySQLレプリケーションの運用が劇的変化!!GTIDについて仕組みから理解する

メリークリスマス!!やあ、良い子のみんな!!サンタクロース・・・ではなく、ヒゲモジャギークからのクリスマスプレゼントだよ!!

というわけで、MySQL Casual Advent Calendarの25日目である。今朝Advent Calendarを覗いてみると、本日分のエントリーが無かったので、急遽書くことにした。Advent Calendar最後の日、クリスマスを飾る記事のテーマはGTIDだ。

前回の投稿では、MySQL 5.6の目玉機能として、レプリケーションがクラッシュセーフになったことを挙げた。レプリケーションまわりで言えば、もうひとつ外せない目玉機能がある。それがGTID(Global Transaction ID)である。

GTIDは良くも悪くもレプリケーションの運用を変化させる。GTIDを使うことによって得られる最大のメリットは、CHANGE MASTER TOでバイナリログポジションをいちいち指定しなくても良いということだ。スレーブが要求するGTIDから、自動的にどのポジションからバイナリログを転送すれば良いのかを判断してくれる。マスターに障害が生じたなどの理由でスレーブを昇格させるとき、最も進んだスレーブを選択しさえすれば、後は勝手に差分を調整してくれるのである。何て便利な機能なんだ!と思わざるを得ない。

その一方、GTIDを使う上では運用者のマインドにも変化が求められる。運用方法がガラリ変わってしまうからだ。スレーブの構築方法や、日々のバックアップ等の運用にも変化が求められる。今日は、便利だけど注意が必要なGTIDについて、その仕組みから解説しようと思う。

2014-12-16

まだMySQL 5.5で消耗してるの?MySQL 5.6でクラッシュセーフなレプリケーションを活用して枕を高くして眠れる日々を満喫する方法

MySQL 5.6が登場してからかなりの月日が過ぎたが、他のことで多忙だったせいか、MySQL 5.6についてはあまりブログで情報を発信していないことに気がついた。これはイカン!!と思い、MySQL Casual Advent Calendar 2014に合わせて、MySQL 5.6を使用する上で最もオススメしたい機能であるクラッシュセーフなレプリケーションについて解説しようと思う。この記事は16日目の記事である。