タグ

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

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

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

    RDBにおけるキャッシュという考え方
    Ehren
    Ehren 2015/06/17
  • 書籍出版のお知らせ:理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL

    来る2月27日、データベースの新書籍を発売させて頂くことになった。タイトルは「理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL」となっている。単に「データベース」と書いてあるが、RDBがメインのテーマの書籍である。 多くの人が未だにRDBを使いこなせていないのではないか。RDBの使い方をマスターするには何が必要なのか。それがここ数年私が追ってきたテーマであり、この書籍を出すことになった動機である。 あまりにも酷いDB設計、あまりにもスパゲティなクエリ、あまりにも希薄なデータモデルへの理解。そういった問題はどこから生み出されるのか。そのひとつの結論としてたどり着いたのが、「そもそもRDBの使い方があまり理解されていないのではないか」ということだった。名著、SQLアンチパターンでは「やってはいけないケース」について学ぶことができるが、その反対のテーマ、つまり来どの

    書籍出版のお知らせ:理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL
    Ehren
    Ehren 2015/02/03
    かおーっと
  • データベースアプリケーション開発を炎上させる負のスパイラル

    毎度おなじみ、はてブのホットエントリに「SIをダメにする負のスパイラル」というタイトルのまとめが掲載された。きしだ氏とはかなり視点は違うものの、開発現場の問題点については少し思うところがあるので意見を書いてみようと思う。と言っても、以下の話の内容はデータベースアプリケーションに限定した話であり、またSIerだけに限った話ではないのでその点はご容赦頂きたい。もちろんSIer各位の案件はデータベースは必須なので、エントリで触れる問題点には該当するだろう。 Q.なぜ炎上するのか? A.正しいデータベース設計ができていないから結論から言おう。データベースアプリケーションの開発が炎上するのは正しいデータベース設計ができていないからだ。ここでいう「正しい」とは、論理的に証明できる正しさという意味ではない。「来こうするべき」といった意味で捉えて欲しい。 「炎上」というのは、例えばテストが通らない、バ

    データベースアプリケーション開発を炎上させる負のスパイラル
    Ehren
    Ehren 2013/11/18
  • 私は如何にしてWindowsの呪縛から逃れ、Linuxデスクトップという涅槃の環境にたどり着くことが出来たのか。

    先日、いますぐWindowsを捨ててデスクトップでGNU/Linuxを使う10+の理由というエントリを書いたところ結構な反響があったと同時に、「Windowsから離れることなんて出来るワケがない」という否定的な意見も多く見られたように思う。確かにWindowsにしか存在しないソフトウェアを使う作業(例えばボカロ作曲)などをライフワークにしている人はWindowsから離れることはできないだろう。 最近はMacユーザーが劇的に増えてきた。筆者もかつては仕事Macを使っていた。Macでも仕事を進める上で困ることはほとんどなかった。(現在もそのMacは使っているが、OSXではなくPear OSが動いている。)筆者が幸運にもWindowsに縛られない仕事だったということも大きいだろう。(仕事上どうしてもWindowsから離れられないという人にはまず転職をお勧めしたい。プログラマやDBAなどのエンジ

    私は如何にしてWindowsの呪縛から逃れ、Linuxデスクトップという涅槃の環境にたどり着くことが出来たのか。
    Ehren
    Ehren 2011/12/31
  • lessでソースコードに色をつける

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

    lessでソースコードに色をつける
    Ehren
    Ehren 2011/11/10
  • 新たなOSX安全神話の検証:Sandboxでウィルススキャンは不要になるか?

    アップルし・・・、もといファンで知られる中島聡氏が、「防備を固める OS X と、無防備な Android と」というエントリを綴っている。中島氏のブログは同意できるエントリも多いのだが、なぜかアップルが絡むとおかしな展開になることがあり、首をかしげてしまう。 今回のエントリでは、「将来的にアップルはOSXにサンドボックスを搭載するらしい」という話から始まって、なぜか「セキュリティの問題がAndroid陣営にとって最大の悩みの種に発展するだろう」という予測で締めくくられている。マジデスカ!!というツッコミが筆者の脳内を駆け巡り、脳内でツッコミが醸成されてネタとなったので、その成分を精製して皆さんにお届けしたいと思う。 サンドボックスとはサンドボックスの機能は特別新しいものではない。コンセプトとしては「プログラムがアクセス可能なコンピュータ資源、例えばファイルやネットワーク通信などを制限する

    新たなOSX安全神話の検証:Sandboxでウィルススキャンは不要になるか?
  • 挑戦に言い訳は要らない

    ひろぶろで紹介されていたダンサーの動画に感動したので、思ったことを書いてみる。 まずは百聞は一見に如かず。この動画を観て欲しい。なんと素晴らしいパフォーマンスだろうか。だが、ちょっと冷静に観察して欲しい。明らかに中央で踊っている男性は、他の2人より背が低い。両サイドの2人が大きいのだろうか?いや、どうやらそうではないらしい。 脊椎側湾症このダンスグループはRemoteKontrolという。彼らのウェブサイトへ行くとメンバー紹介(BIO THE KREWのコーナーだ)がある。背の低い彼、Bryan "Chibi" Gaynorのプロフィールを見てみると、背が低いのはscoliosisとKlippel–Feil syndromeによるものだということが分かる。("Chibi"は日のアニメからとったニックネームなのだそうだ。) scoliosisとは、日語で脊椎側湾症といい、その名の通り脊椎

    挑戦に言い訳は要らない
    Ehren
    Ehren 2011/06/24
  • なぜリチャード・ストールマンはオープンソースを支持しないか

    「リチャード・ストールマンはオープンソースを支持しない。」なんていうと、オープンソースにあまり詳しくない人はギョッとするかも知れない。ギョッとした人は是非このエントリを読んで欲しいと思う。 我らがリチャード・ストールマン(敬称略)はGNU宣言を発表してフリーソフトウェア運動を始めた偉人である。そう、リチャード・ストールマンが支持するのはフリー(自由な)ソフトウェアであってオープンソースではないのだ。なんだか似たような感じがするし、恐らくオープンソースとフリー(自由な)ソフトウェアを明確に区別している人はほとんど居ないだろう。オープンソースと言う語をはじめて公式に発表したブルース・ペレンズも「フリーソフトウェアとオープンソースは実質的に同じものを指す」なんて言っちゃってるぐらいだ。だけどリチャード・ストールマンは二つを明確に区別し、あくまでもフリー(自由な)ソフトウェアを支持する立場を貫いて

    なぜリチャード・ストールマンはオープンソースを支持しないか
  • MySQL 5.6登場!!新機能速攻レビュー

    現在、米国で行われているMySQL Conference & Expoにあわせて、新しい開発版であるMySQL 5.6が発表された。MySQL 5.5における新機能もかなりのものだったが、MySQL 5.6の進化は質・量ともに勝とも劣らない内容となっている。そこで、今日は簡単に、MySQL 5.6で追加された新機能の概要について見てみよう。開発版なので利用にあたっては十分な注意が必要(予期なく予定が変更される可能性あり)だが、次期正式版のリリースに向けて是非試してみて欲しい。 InnoDB関連MySQL 5.5で大幅な進化を遂げたInnoDBだが、その勢いはまったく衰えることを知らない。性能の強化だけでなく、痒いところに手が届く便利な機能が追加されている。 ダーティページのフラッシュをするスレッドが独立した。以前はマスタースレッド内でフラッシュが行われていたが、スレッドが独立したことによっ

    MySQL 5.6登場!!新機能速攻レビュー
    Ehren
    Ehren 2011/04/12
  • 「優れたMySQL DBAを見分ける27+3の質問」に対する回答例

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

    「優れたMySQL DBAを見分ける27+3の質問」に対する回答例
    Ehren
    Ehren 2011/04/07
  • 優れたMySQL DBAを見分ける27+3の質問

    「優れたPerlプログラマを見分ける27の質問」の日語訳というエントリが人気だったので、MySQL版をやってみた。題して、「優れたMySQL DBAを見分ける27+3の質問(漢バージョン)」。腕に覚えのある人はぜひ試してみて欲しい。 MySQLのサーバープロセスはいくつある? rootユーザーのパスワードを忘れたときの回復手順 MySQLをオンラインバックアップする方法を3つ。(もっとでも可) InnoDBのデータファイルが作成可能な場所はどこか。 InnoDBのデフォルトの分離レベルは? ネクストキーロックについて説明せよ。 ロールバックセグメントにはどのようなデータが格納されるか? InnoDBでデッドロックが発生したときの挙動、および詳細な状態を確認する方法。 MyISAMがサポートしている特殊なインデックス2つ。 MySQLにおけるテーブル1行あたりの最大サイズ。 構成可能なレプ

    優れたMySQL DBAを見分ける27+3の質問
    Ehren
    Ehren 2011/03/08
  • MySQL 5.5新機能徹底解説

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

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

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

    "オープンソース"の名を冠したプロプライエタリな人向けのセミナーに参加した件
  • はてなブックマークウィジェット高速化大作戦

    ブログで利用しているはてなブックマークの人気または注目エントリーを表示するブログパーツである「はてなブックマークウィジェット」が、最近極端にロードに時間がかかるようになってしまった。はてなブックマークウィジェットは多くのサイトで採用されているので目にする人も多いことだろうと思う。データのロード中はクルクル回るgifアニメーションが表示されるのだが、最近はもっぱらクルクル回っているところばかりを目にするようになってしまった。「クルクル回ってる間にエントリを読み終えてしまうんじゃないか!?」とすら思えてしまう。あまりにも時間がかかるので、先日Twitterで「はてブの人気エントリーウィジェットが遅い」などと愚痴をこぼしてしまったのだが、そんな他力願じゃイカン!!と腐った根性を改めて、ウィジェットの高速化に取り組んでみた。 はてなブックマークウィジェットは当に遅いのか?遅いと感じるかどうか

    はてなブックマークウィジェット高速化大作戦
    Ehren
    Ehren 2010/11/28
    パフォーマンスに不満があるなら、自分で対応してしまうとは、誠に漢らしい
  • 出来る漢になるための唯一無二の階段

    はてなのホッテントリで話題になっている「仕事がデキる人」と「仕事をする人」の違いと習慣 / Keep Crazy;shi3zの日記」という記事を見て凄い違和感を覚えたので思わず筆をとってしまった。ネタバレ注意なので、まずは元記事を読んでからエントリに移っていただきたい。 一見もっともらしい意見のようだが・・・結論から言おう。 単に与えられた命令を淡々と実行するのは当たり前。それは「仕事をしてる」ことにはなっても、「仕事がデキる」ということではない。 では「仕事がデキる人」と「仕事をしてる人」の違いはどこにあるだろうか。 僕はこれを「先読み能力」の違いだと思った。 仕事で先を読むなどということに挑戦するのはまったくの無駄骨にしかならない。 そもそも、ルーチンワークでもない限り、物事の先を読むというのは非常に難しいか、もしくは不可能である。ルーチンワークであれば段取り通りに仕事を進めていくだ

    出来る漢になるための唯一無二の階段
    Ehren
    Ehren 2010/11/05
  • 書評: 看板に偽りなし!「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徹底入門」
    Ehren
    Ehren 2010/10/25
  • HA化機能を手に入れたSPIDERストレージエンジンにはもはや死角はなかった。

    ブログでも何度か取り上げたことのあるあのSPIDERストレージエンジンがさらにパワーアップして便利になった!8月にリリースされたバージョン2.22では次の2つの強化が行われている。 HA機能の追加(データノードの冗長化) LinuxおよびWindows用ビルド済みMySQLパッケージの配布 インストールが簡単になった!前回SPIDERストレージエンジンを紹介したときには、ソースコードからコンパイルする必要があり、なおかつMySQL体にパッチを適用しなければならず、利用するまでの敷居が高かったように思う。しかし、バージョン2.22よりSPIDERを含んだビルド済みバイナリが提供されたことにより、SPIDERを利用する手間はぐっと少なくなった。しかもこのビルド済みのバイナリにはSPIDERだけでなく各種パッチと、さらにはVPストレージエンジンまで含まれているという気の利きようだ。コンパイル

    HA化機能を手に入れたSPIDERストレージエンジンにはもはや死角はなかった。
    Ehren
    Ehren 2010/10/18
  • 漢(オトコ)のコンピュータ道: InnoDBでCOUNT()を扱う際の注意事項あれこれ。

    InnoDBを使うとき、MyISAMと比較して度々やり玉に挙げられるポイントとして「COUNT()が遅い」というものがある。確かにInnoDBにおいて行数を弾き出すのにはテーブルスキャンが必要なのだが、そもそもMyISAMのCOUNT()が速い(テーブルの行数を保持してる)のが特殊なのであって、InnoDBが遅いわけではないのである。とはいえ、高速なCOUNT()については需要が多く、この問題には多くの人取り組んでおられるようだ。しかしながら、COUNT()のチューニングについては未だ語られていない点があるように見受けられるので、今日はCOUNT()のチューニングについて解説しようと思う。 COUNT(*)、COUNT(col)、COUNT(1)の違い基的なことではあるが、COUNT(*)とCOUNT(col)では意味が異なるため、異なる結果が返される場合がある。COUNT(*)はフェッ

    漢(オトコ)のコンピュータ道: InnoDBでCOUNT()を扱う際の注意事項あれこれ。
    Ehren
    Ehren 2010/08/10
  • 漢(オトコ)のコンピュータ道: モダンなMySQLの開発環境の構築方法

    遅ればせながら モダンな Perl の開発環境の構築方法 モダンなPHPの開発環境の構築方法 モダンなPythonの開発環境の構築方法 モダンな Java の開発環境の構築方法 に続いてみる。MySQLは言語じゃないけど。 コンパイラ等MySQLをソースからビルドするのでなければコンパイラ等は必要ないけど、どうせアプリ開発に必要なので「MySQLなんかいつでもハックしてやるぞ!」という意気込みを示すために入れておこう。OSXならXcode、LinuxならGCC。最新のソースコードじゃないとヤダ!という粋な人にはBazaarのインストールもお勧めしたい。Bazaarは言わずと知れた分散バージョン管理システムであり、MySQL開発チームも採用している。最新のソースコードは次のコマンドでゲット可能だ。 shell> bzr branch lp:mysql-server/5.1 mysql-5.1

    漢(オトコ)のコンピュータ道: モダンなMySQLの開発環境の構築方法
    Ehren
    Ehren 2010/07/27
  • スライド公開(Dena Technology Seminar #2、ClubDB2)+告知

    最近ブログの更新が滞り気味である。とはいえ、何もしていなかったわけではない。勉強会で話すことになり、スライドの作成に邁進していたのである。で、そのスライドがこれだ! まずはひとつめ。DeNA Technology Seminar #2に招いて頂いたときのもの。内容はMySQL 5.5の新機能に関するものだ。プラスアルファとして、トラブルシューティングが出版された直後のスライドであったため、「トラブルシューティングの心得」を末尾に収録している。 http://www.slideshare.net/nippondanji/denatech2-mysql55 セミナーの様子はustにて録画が残っているので興味のある方はご覧頂きたい。 http://www.ustream.tv/channel/dena-technology-seminar そして、以下はClubDB2にお邪魔したときのものであ

    スライド公開(Dena Technology Seminar #2、ClubDB2)+告知