タグ

ブックマーク / nippondanji.blogspot.com (48)

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

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

    RDBにおけるキャッシュという考え方
    nekomori
    nekomori 2015/06/17
  • その選択、ちょっと待った!NoSQLデータベースへ乗り換える前に検討すべき3つのポイント

    最近、どうも安易に「NoSQLにすれば厄介なDB設計から開放される」と考えている人が多いように思えて仕方がない。だが待って欲しい。当にNoSQLと呼ばれるデータベースを使えばアプリケーションの開発・運用の苦しみから逃れられるのだろうか。もちろん「そんなことは無い!!絶対にだ!!」と私は考える。今日はその理由について語ろうと思う。 トランザクション先日、リレーショナルデータベースにおけるDB設計についてセミナーで解説したばかりだが、リレーショナルデータベースにおけるデータの整合性は何もDB設計だけが担保しているわけではない。リレーショナルモデルと同じかそれ以上に欠かせないのがトランザクションだ。 トランザクションがあるおかげで、トランザクション終了後のステータスは「成功」か「失敗」の2つしかないということが保証される。すなわちオール・オア・ナッシングだ。もしトランザクションの途中で何らかの

    その選択、ちょっと待った!NoSQLデータベースへ乗り換える前に検討すべき3つのポイント
    nekomori
    nekomori 2013/12/02
  • DBエンジニアのための技術勉強会で発表したスライドを公開しました。

    DBエンジニアのための技術勉強会というイベントで、リレーショナルモデルにおけるDB設計について話す機会を頂いた。リレーショナルモデルは非常に重要であるにも関わらず、現場ではないがしろにされてしまっている。その結果、アプリケーションのロジックを上手くクエリで表現できず、開発現場では非効率な開発が行われ、多くの人がデスマ的な状況に追い込まれている。そういう危機意識について、これまで何度かブログでも書いてきたし、WEB+DB Pressで連載している動機もその点にある。リレーショナルデータベースはやはりリレーショナルデータベースとして使うべきだ。そのための鍵となるのが、DB設計である。 今回はなんと約2時間の持ち時間を頂いた。リレーショナルモデルについてはこれまで何度か話す機会を頂いたが、2時間というのは最長記録である。それに合わせてスライドもボリュームたっぷりのものになった。過去のスライドと

    DBエンジニアのための技術勉強会で発表したスライドを公開しました。
    nekomori
    nekomori 2013/11/29
  • MySQLでVisual Explain

    MySQL Workbenchの次期バージョンである6.0のベータ版が公開された。例によってMySQLのダウンロードサイトで公開されているので、新機能が気になる人はゲットして試してみて頂きたい。見た目が若干今流行りのフラットデザインっぽくなってシャレオツ(笑)な感じに仕上がってる。 ベータ版が公開されたのを記念して、Workbenchに搭載されているナイスな機能について紹介したい。そう、Visual Explainだ。Visual Explainとは読んで字のごとく、SQLの実行計画を視覚的に表現したものだ。SQLが複雑になると、その実行計画は理解し辛いものとなる。 今日はVisual Explain基的な使い方と、それがどのように見えるかを紹介しようと思う。 Visual Explainを使用するには、対象のMySQLのバージョンが5.6以上であり、なおかつWorkbenchのバージョ

    MySQLでVisual Explain
  • MySQLは立ち止まらない・・・MySQL 5.7開発版登場!

    まだMySQL 5.6が登場して興奮冷めやらぬところだが、MySQLの開発チームはその手綱を緩めることはない。次期バージョンの開発版であるMySQL 5.7.1がすでに登場している。MySQLの開発リリースモデルではマイルストーンリリースと呼ばれるマイナーバージョンごとに新しい機能が盛り込まれる。(参照:MySQL 5.5登場)MySQL 5.6系での最後のマイルストーンリリース、つまり新しいバージョンが盛り込まれたバージョンがマイルストーン9、そして5.7.1がマイルストーン11となる。(マイルストーン10、つまり5.7.0はリリースされていないバージョンとなっている。)MySQL 5.7が正式版になるまでに、いくつのマイルストーンリリースを経るか、つまりどれだけ新機能が搭載されるかについては今のところ未定だが、新しいバージョンのリリースが待てない!という人はぜひMySQL 5.7.1を

    MySQLは立ち止まらない・・・MySQL 5.7開発版登場!
  • DRMがウェブに持ち込まれようとしている未だかつてない危機

    我らがフリーソフトウェア財団が、最近W3Cに提案されたEMEという規格について警告を発している。EME(Encrypted Media Extensions)はウェブ上のメディアに対してDRMを持ち込む規格である。オー・マイ・ガッ!!なんということだろう。 なぜDRMがダメなのか。ウェブの良い点はHTMLという共通の規格によって、ブラウザーが違えど誰もが同じページを参照することができるということだ。どのようなOS、どのようなデバイス、どのようなブラウザでも関係ない。現在でもFlashが組み込まれたページという問題はあるものの、HTMLによる表現の共通化は割とうまくいっている。標準化が進むHTML5はさらにそのFlashも不要になる可能性を秘めている。DRMはウェブの良さを台無しにするからである。 EMEはそのような自由なウェブを真っ向から否定するかのような存在なのだ。 もし、HTMLにDR

    DRMがウェブに持ち込まれようとしている未だかつてない危機
  • 最高の土管が欲しい

    筆者は1年半ほど前に携帯のキャリアをドコモへ変更した。それまではソフトバンクを使っていたのだが、筆者の生活圏との相性が良くなかったようで、電波の状況が芳しくなかったのだ。ドコモへ変更してからは電波状況は満足のいくものとなった。しかし電波状況以外の問題で返って不満が募る結果となってしまった。なぜか?ひと言で表すとサービスに制約が多すぎるからだ。様々な不満を心に抱いていたところ、次のようなニュースが報じられた。 ドコモ社長「米アマゾンになる」 来年度からモバイル通販で野菜、健康機器など販売 - SankeiBiz(サンケイビズ) このニュースには閉口せざるを得ない。不満が爆発してしまいそうなので、ここらへんでひとつぶちまけてみようと思う。 IMEI規制 まず一つ目の問題は、それまで使用していたSIMロックフリー端末が使えなくなってしまったということだ。正確にいうと使用できるのだがデータ通信費が

    最高の土管が欲しい
  • MySQLと英語のリスニングを同時に勉強する方法。

    英語を勉強したいが技術も勉強したい。それは技術者にとって悩ましい悩みではいだろうか。そんな悩める技術者諸君にとって喜ばしい知らせがある。MySQLの勉強も英語のリスニングも同時にできる、そうOurSQL Database Community Podcastならね。 OurSQL: The MySQL Database Community Podcast だいたい1回30分前後でMySQLについて様々なトピックについてのディスカッションが行われている。既にエピソード69までたまっているのでまさに聞き放題だ!Webページ上で直接聴くこともできるし、お気に入りのミュージックプレイヤーで聴くなら下記のPodcast FeedのURLを登録すれば良い。筆者はAmarokで聴いている。 http://technocation.org/audio/feed Enjoy!!

    MySQLと英語のリスニングを同時に勉強する方法。
  • MySQLにおけるレプリケーション遅延の傾向と対策

    レプリケーションはMySQLで最もよく使われる機能のひとつだ。レプリケーションは基的に非同期でデータの複製を行う仕組みになっているのだが、非同期故にどうしても逃れられない問題がある。そのひとつが今回のテーマ、遅延である。というと、MySQLのレプリケーションはすぐに遅延が生じてしまうように感じてしまうかも知れないが、そのようなことはない。ほとんどの場合は即座にスレーブの更新が行われる。 なぜ遅延は発生するのか、どのように遅延が起きていることを調べるのか、どのように回避するのかということをエントリでは解説したい。うまく遅延と付き合って、MySQLのレプリケーションをより快適に運用してもらえればと思う。 そもそも遅延とは何かMySQLのレプリケーションは非同期で行われる。これは準同期でも同じであり、スレーブにおいて更新が起きるのはマスターよりも一瞬遅れてしまう。これは非同期であるが故に逃れ

    MySQLにおけるレプリケーション遅延の傾向と対策
  • lessでソースコードに色をつける

    シェルの操作中「テキストファイルをちょこっと覗きたいな」と思ったときに抜群に便利なlessコマンドであるが、普段綺麗に色付けされたソースコードを見慣れていると、モノクロのソースコードの見づらさに愕然としてしまう。結局lessを終了して他のエディタで開きなおすことになるのだが、lessでソースコードに色付け(シンタックスハイライト)できれば便利なのになーっ!と思ったことはないだろうか。そう、あるんです!lessでシンタックスハイライトする方法はあるんです!というわけで、今日はその方法を紹介しよう。 GNU Source-highlight結論から言うと、今日紹介する方法はGNU Source-highlightを使う。GNU Source-highlightを使えばイッパツだ。なのでまずGNU Source-highlightをインストールしよう。UbuntuやFedoraならリポジトリにあ

    lessでソースコードに色をつける
  • 真のオープンソースとは何か?

    @tmaesaka氏からのツイートで知ったのだが、LPI-Japanが見過ごすことが出来ない発言をしている。 PostgreSQL技術者を認定、LPI-Japanが「OSS-DB技術者認定試験」開始 - ITpro 以下、引用。 OSS-DBには、PostgreSQLと米OracleMySQLがあるが、「特定ベンダーの管理下にあるソフトは真のOSSとは言えない」(LPI-Japanの成井弦理事長、写真)として、今回スタートするOSS-DB ExamではPostgreSQLのみを対象とした。 これはおかしなことだ。一体誰が「特定ベンダーの管理下にあるソフトはOSSではない」などと決めたのだろう? MySQLはオープンソースソフトウェアです。MySQLはれっきとしたオープンソースソフトウェアだ。ただし、Community Editionに限る。MySQLはデュアルライセンスであり、GPL版と

    真のオープンソースとは何か?
  • モテるフリー(自由な)ソフトウェア系女子力を磨くための4つの心得「ブラウザではJavascriptを有効化できない女をアピールせよ」等

    Inspired by モテる女子力を磨くための4つの心得「オムライスをべられない女をアピールせよ」等 こんにちは、自由恋愛マネジメントを専攻している日男児ギークです。私は特許も秘密もありませんしタダですが、自由恋愛に関してはプロフェッショナル。今回は、モテるGNU女子力を磨くための4つの心得を皆さんにお教えしたいと思います。 1. あえて2~3世代前のライセンスを適用するあえて2~3世代前のソフトウェアライセンスを使うようにしましょう。そして飲み会の場で好みのハッカーな男がいたら話しかけ、わざとらしくライセンスの互換性を確認してみましょう。そして「あ~ん! このライセンス当にマジでチョームカつくんですけどぉぉお~!」と言って、男に「どうしたの?」と言わせましょう。言わせたらもう大成功。「ライセンスとか詳しくなくてぇ~! ずっとコレ使ってるんですけどぉ~! GPLと互換性がなくて使い

    モテるフリー(自由な)ソフトウェア系女子力を磨くための4つの心得「ブラウザではJavascriptを有効化できない女をアピールせよ」等
  • MySQL Cluster 7.2見参!Webでも使える熱いヤツがやってきた。

    前回のエントリではMySQL 5.6の新機能についてレビューを行ったが、MySQL User Conferenceに合わせる形でMySQL Clusterの新しい開発版であるバージョン7.2も発表された。一見すると追加された新機能の数は少なくMySQL 5.6ほどのインパクトはないが(というかMySQL 5.6の新機能がありすぎなわけだが)、実は7.2ではMySQL Clusterにとって非常に重要な改善がなされているのだ! というわけで、今日はMySQL Cluster 7.2の新機能を紹介しよう。 JOINの性能が改善!まず最初に最も重要なことについて述べよう。MySQL Cluster 7.2ではJOINの性能が改善している。非常に大切なことなのでもう一度言おう。MySQL Cluster 7.2ではこれまで最大の弱点であったJOINの性能が改善している! MySQL Cluster

    MySQL Cluster 7.2見参!Webでも使える熱いヤツがやってきた。
  • 「優れたMySQL DBAを見分ける27+3の質問」に対する回答例

    随分と更新が空いてしまったが、「優れたMySQL DBAを見分ける27+3の質問」に対する回答例(漢バージョン)を紹介しよう。実は質問を掲載した際「難しい!」というコメントが非常に多く、もう少し易しい質問にするべきだったかと思って次のように呟いてみたのだが・・・ 非常に心強くて安心した。さすがに日を代表するMySQLのエキスパートである。出題のレベルは間違ってはいなかった!! そんなわけで、回答の方に移ろう。 MySQLのサーバープロセスはいくつある?ひとつ。mysqldはシングルプロセス・マルチスレッドモデルを採用しているので、"サーバー"プロセスはひとつである。多くの場合、Linuxなどでmysqldを動かす場合には、お供にmysqld_safeも常に動いていることが多いが、mysqld_safeはサーバーではなく、mysqldのためのラッパーであるので数には含めない。 rootユー

    「優れたMySQL DBAを見分ける27+3の質問」に対する回答例
  • MySQL 5.5新機能徹底解説

    今年も残すところあとわずかとなった。2010年もIT業界にとっては変化の多い一年だったが、皆さんにとっては良い年だっただろうか?既に何度かMySQL 5.5の新機能については取り上げたが、ついに正式版がリリースされたということでここで改めて新機能を解説し、今年最後のエントリを締めくくろうと思う。 MySQL 5.5にはこれでもかっ!というぐらい新機能が追加されている。しかもいずれもナイスなものばかりだ。一般的には、ソフトウェアに新機能が追加されると重くなったり安定性が低下する事例が後を絶たないのだが、MySQL 5.5に関してはそのようなことは全くないので安心して利用して頂きたい! InnoDBの大幅な改善種々ある改善点の中でも特に目をひくのがInnoDBストレージエンジンへの改良だ。実は、InnoDBMySQL 5.1が最初にリリースされたときから、2回アップデートが行われている。My

    MySQL 5.5新機能徹底解説
    nekomori
    nekomori 2010/12/30
    新機能が熱いね
  • "オープンソース"の名を冠したプロプライエタリな人向けのセミナーに参加した件

    先月中旬の話になるが、マイコミジャーナルで紹介されていた「事例に学ぶ オープンソース知財セミナー2010」というセミナーに参加してきた。(主催はオージス総研)サブタイトルは「オープンソースに潜む法的リスクとその対策のヒント」という謳い文句であり、オープンソース独特の法的リスクの話が聞けるかも知れないと思い申し込んだ。だが、結果は見事に裏切られた! ひとことで言うと、今回のセミナーはオープンソースのセミナーではなかった!というのが拙者の正直な感想である。あまりにも酷い内容だったと言って差し支えない。酷かったのは各々のプレゼンの質などではなく、その欺瞞に満ちたメッセージである。そのようなメッセージを放置すると、オープンソースに対する誤った知識が広まる恐れがあるので、エントリにて批判させて頂こうと思う。 キナ臭い基調講演基調講演はセミナーを主催したオージス総研の常務が行なった。滑り出しはオー

    "オープンソース"の名を冠したプロプライエタリな人向けのセミナーに参加した件
  • アジャイルと受託開発

    先日、永和システムマネジメント社がアジャイルによる受託開発サービスを発表し、話題になっている。多くの人の関心を引いているのは、アジャイル開発手法を取り入れるということだけでなく、その価格の安さだ。一ヶ月あたりの料金は、もっとも安いものでは月々15万円から、もっとも高額なプランでも月々150万円からとなっている。果たしてそんなので儲かるの!?というのが多くの人がいだいている疑問であろう。自分なりに「アジャイルによる受託開発サービス」について分析してみたので語ってみようと思う。なお、エントリは永和システムマネジメント社が公開されている資料と筆者の推測に基づくものであるので、より詳細で正確な内容は永和システムマネジメント社さんへ問い合せて頂くよう悪しからず了承いただきたい。 採算割れしないのか?筆者の見解では、たぶんしない。何故か?それは一旦開発が終わったらそうそう頻繁にシステムの仕様を変更し

    アジャイルと受託開発
  • 書評: 看板に偽りなし!「KVM徹底入門」

    仮想化技術が注目されはじめて久しい。クラウドコンピューティングのバックエンドには仮想化が必須であり、ユーザーはあまり意識することはなくてもIaaSなどを利用する場合には仮想化技術のお世話になっている。仮想化技術には実に様々なものがあり、KVM - Kernel-based Virtual Machineはその選択肢のひとつだ。 KVMに興味があり、これから勉強しようと思うのであれば、まずこのを手にしてみるのがいい。 タイトルに偽りなし!もくじは以下の通り。徹底してKVMの入門知識を習得するための筋道ができている。 1. KVMと仮想化技術の基礎知識 1.1 仮想化とは 1.2 仮想化技術の流れ 1.3 仮想化のメリットとデメリット 1.4 IAサーバーと仮想化 1.5 CPUの仮想化支援機能 1.6 KVM(Kernel-based Virtual Machine) 2. パッケージによ

    書評: 看板に偽りなし!「KVM徹底入門」
    nekomori
    nekomori 2010/10/26
  • 「エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド」発刊のおしらせ。

    来たる6月12日、我が入魂の書籍が発刊される運びとなった。執筆を開始したのはすでに一年以上前であり、ブログでも何度か「執筆中です!」といいながらなかなか発刊に至らずお待たせしてしまったのだが、しかし時間がかかってしまった分、内容には磨きがかかったと思うので期待して頂きたい。書籍のタイトルは「エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド」。筆者にとって初の著書(単著)である。名前にエキスパートと冠している通り、中級〜上級者向けの一冊となっている。初心者の方は、まずMySQL 徹底入門 第2版などを先に読んでから書を購入するといいだろう。以下もくじである。 第1章 MySQLの概要 1 MySQLとは 1-1 世界で最も有名なオープンソースのRDBMS 1-2 LAMPの"M" 1-3 History 2 MySQL Serverの種類 2-1 FOSS Exc

    「エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド」発刊のおしらせ。
  • mysqlsnifferでMySQLのプロトコルをキャプチャリング

    MySQLで接続関係の問題、具体的に言うとAborted_clientsやAborted_connectionsというステータス変数が増え続けてしまうような現象に遭遇することがある。MySQLは、そういったネットワーク関係の問題をあまりたくさんログに記録しないようになっている。DoS攻撃などでログが溢れかえってしまわないようにするためだ。そんなとき、試して頂きたいのがmysqlsniffer。 mysqlsnifferとは。http://hackmysql.com/mysqlsniffer mysqlsnifferは、tcpdumpのようにネットワークインターフェイスからパケットをキャプチャするプログラムだが、tcpdumpとはMySQLのプロトコルを理解するという点で異なる。というかMySQLのプロトコル専門のキャプチャプログラムだ。OSのroot権限さえあれば、MySQLサーバーに対し

    mysqlsnifferでMySQLのプロトコルをキャプチャリング