タグ

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

  • 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
    mainyaa
    mainyaa 2013/06/27
    Visual Explainすごい! / “漢(オトコ)のコンピュータ道: 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開発版登場!
    mainyaa
    mainyaa 2013/05/01
    “漢(オトコ)のコンピュータ道: MySQLは立ち止まらない・・・MySQL 5.7開発版登場!”
  • [書評]MySQLをハックしまくりたい人のためのスゴ本「MySQL 5.1 Plugin Development」

    MySQLはGPLv2で頒布されているフリー(自由な)ソフトウェアだ。誰でも自由に改造、改善、機能追加して、GPLv2のもと再頒布することが出来る。 そうは言っても改造なんて敷居が高くて出来ないよ・・・という人に朗報なのが書「MySQL 5.1 Plugin Development」だ!MySQLはストレージエンジンによってデータを管理するレイヤーが独立しているのはよく知られているが、MySQL 5.1ではさらに一歩進んで、ストレージエンジンを含む様々なプラグインを作成できるようになった。プラグインAPIを使ってMySQLを拡張すれば、無造作に改造してしまうよりもずっと楽にMySQLをハック*1することが出来るだろう。 MySQL 5.1で利用可能なプラグインPlugin APIは、MySQL 5.1で新たに追加された機能である。これにより、共有ライブラリ形式で後から機能を追加することが

    [書評]MySQLをハックしまくりたい人のためのスゴ本「MySQL 5.1 Plugin Development」
  • ジョナサン・シュワルツの発言から考察するソフトウェア特許の有害性

    少し古い話だが、元SunのCEOであるジョナサン・シュワルツ氏が自身のブログで「スティーブ・ジョブズに訴えると脅された」と語った。これは先日、AppleがHTCを提訴したことを受けて語った内容であるが、その辺のいきさつについてはZDNetの記事やITMediaの記事、シュワルツ氏のブログエントリなどを見て頂きたい。(ZDNetの記事がよくまとまっている。) ジョナサンが放ったカウンター元記事でも語られているが、いずれの場合もジョナサン・シュワルツ氏は、サン・マイクロシステムズが保有していた特許で対抗した。以下はZDNetの記事からの引用だ。まずはAppleから。 Appleに対して、Schwartz氏はAppleのプレゼンテーションソフト「Keynote」と、Schwartz氏が設立に関わりSunが買収したLighthouse Designの「Concurrence」との間の類似点を持ち出

    ジョナサン・シュワルツの発言から考察するソフトウェア特許の有害性
  • 恵比寿にあるLinux会社の熱いギークたちに会ってきた話。

    先日、友人の紹介でRed Hat社に勤めるエンジニアの方たちと事をした。Red Hat社のエンジニアの方々とはあんまり交流が無かったのだが、やはりLinuxに、そしてフリーソフトウェアに魂を燃やす漢たちの発想は一味違う!!興味深い話を聴き、とても良い刺激を受けることができたので皆さんにも紹介したいと思う。 再会参加者の面子を事前に聞いていなかったので驚いたのだが、なんとそこには古い知り合いの顔があった。KVM徹底入門の共著者である森若和雄氏である。彼とは大学院時代、同じ研究室の先輩後輩の間柄(自分の方が一年先輩)なのだが、当時自分は落ちこぼれであり、森若氏は自分より遥かに高いスキルを持ち合わせていたのをよく覚えている。卒業後お互い別々の道を歩いた末に、同じフリーソフトウェア支持者として再会出来たのは大変喜ばしい。 学生時代の森若氏の口ぐせは「Perl最高!Perlがあれば何でもできる!ヒ

    恵比寿にあるLinux会社の熱いギークたちに会ってきた話。
  • HA化機能を手に入れたSPIDERストレージエンジンにはもはや死角はなかった。

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

    HA化機能を手に入れたSPIDERストレージエンジンにはもはや死角はなかった。
  • まるで魔法のようなストレージエンジン??VP for MySQLによる驚愕のテーブル操作テクニック。

    先日、SPIDERストレージエンジンについて2度に渡りブログで紹介した(その1:Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン、その2:快適スケールアウト生活への第一歩。SPIDERストレージエンジンを使ってみよう!)が、SPIDERの作者である斯波氏は、実はもう一つ驚くべきストレージエンジンを開発している。その名も、VPストレージエンジンだ。ちょっと地味な名前だが、VPとは、Vertical Partitioning(垂直パーティショニング)の略で、複数のテーブルの上にVPストレージエンジンを被せて、垂直パーティショニング(カラムごとにデータを格納する領域を分ける)を実現するというものだ。他のテーブルの上に被せるアーキテクチャをとっているという点では、VPとSPIDERの発想は同じである。以下は、VPストレージエンジンの動作

    まるで魔法のようなストレージエンジン??VP for MySQLによる驚愕のテーブル操作テクニック。
  • 凄いヤツがやって来た。その名もWePad。i?いいえ、Weです。

    少し前からiPadの対抗馬として注目されていたWePadであるが、誰もがまず思うのはそのネーミングセンスだろう。アップルが「I」ならこちらは「We」かよ!的な。そんなちょっと人を(アップルを?)おちょくったようなネーミングセンスのデバイスだが、YouTubeにアップされているデモ動画を見たところ、すっかり心を奪われてしまった。これは凄い!! まずはこちらの動画を見て頂きたい。 WePadのUIを操作するデモ(ここではマウスが使われているが、実際にはタッチで操作することになるだろう)だが、このデモでは主にホーム画面の使い方が分かる。縦横無尽に並べられたガジェット。それをスライドしながら一覧できるホーム画面。ホーム画面を見れば「このタブレットで何が出来るのか?」が分かり、必要な機能(=アプリ)に素早くアクセスすることが出来る。 Android携帯でもホーム画面に様々なガジェットを配置することが

    凄いヤツがやって来た。その名もWePad。i?いいえ、Weです。
    mainyaa
    mainyaa 2010/04/20
  • MySQLコミュニティ騒然!MySQL 5.5.4が与えるインパクト。

    先週、MySQL Conference & Expo 2010が開催され、盛況のうちに終了した。カンファレンスに合わせる形で、MySQL 5.5.3および5.5.4がリリースされたのだが、これが目を見張るような進化を遂げている。特に性能面での進化には目を見張るものがある!Jeremy ZawodnyやMark Calleghanといったコミュニティの重鎮たちも「非常にエキサイティングなリリースだ!」などと表して歓迎の意を表している。 というわけで、日はMySQL 5.5.3/5.5.4の新機能および変更点についてレビューしてみよう! おさらい。 〜 MySQL 5.5の既存の機能 〜MySQL 5.5が登場したとき、その新機能については以前にもエントリで紹介したが、ここで改めておさらいしてみよう。MySQL 5.5は、正確にいうと現在最新バージョンであるMySQL 5.1の「次の次」のバ

    MySQLコミュニティ騒然!MySQL 5.5.4が与えるインパクト。
  • 快適スケールアウト生活への第一歩。SPIDERストレージエンジンを使ってみよう!

    先月、Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジンというエントリでSPIDERストレージエンジンによるスケールアウトが凄い!という話を書いた。SPIDERストレージエンジンは凄いヤツだが、ノウハウがあまりウェブ上で見つからない。唯一見つかる日語の記事は、ウノウラボによる「国産MySQLストレージエンジン「Spider」の作者、斯波健徳氏に聞く 」だけである。SPIDERストレージエンジンは斯波氏による単独の作品であるため、斯波氏は開発だけで手いっぱいであり、使い方の紹介記事を書くことまでは手が回らないのであろう。こんな凄いストレージエンジンをドキュメントが足りないせいで使って貰えないなんて勿体ない!! というわけで、今日はSPIDERストレージエンジンの基的な使い方について紹介する。少し長いエントリであるが、最後までお付き

    快適スケールアウト生活への第一歩。SPIDERストレージエンジンを使ってみよう!
    mainyaa
    mainyaa 2010/04/13
  • さらにMySQLを高速化する7つの方法

    MySQLを高速化する10の方法という記事がとても好評だったようである。記事を読んで頂いた皆さん、ありがとう。 この記事に対する便乗(?)でWeb屋のネタ帳: PostgreSQLを高速化する16のポイントという記事を書いて頂いたようだが、そちらの方もかなり人気だったようである。他人が作ったソフトウェアに改良を加えるというフリーソフトウェアやオープンソースソフトウェアの精神も基は便乗であるので、便乗については大いに賛成したいというかむしろ取り上げてくれてありがとう!!と思うわけであるが、ここでさらに俺はこう考える。 と。 Web屋のネタ帳さんの記事では16のポイントが紹介されているが、漢(オトコ)のコンピュータ道の記事は10の方法だったのであと6つ足りない。オトコは数で勝負!!というわけで今日はネタを振り絞ってさらに7つのMySQL高速化テクニックを紹介しよう。 1. インテルコンパイラ

    さらにMySQLを高速化する7つの方法
  • 漢(オトコ)のコンピュータ道: InnoDBでCOUNT()を扱う際の注意事項あれこれ。

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

    漢(オトコ)のコンピュータ道: InnoDBでCOUNT()を扱う際の注意事項あれこれ。
  • ALTER TABLEを上手に使いこなそう。

    テーブル定義を変更したい。インデックスが壊れてしまったので再作成したい。そんな場合はALTER TABLEを使う。ALTER TABLEはテーブル定義を変更するお馴染みのコマンドであるが、その挙動は意外と知られていない。(エキスパートとおぼしき方々からも度々質問を受ける。)そんなわけで、今日はALTER TABLEについて解説しようと思う。 まず結論から言うと、なんとMySQLのALTER TABLEはテーブルのデータを全てコピーし直すのである。なんて無駄なことを!?と思うかも知れないが、テーブル定義(スキーマ)の変更を動的に行うには、ストレージエンジンによるサポートが必要であり、動的なスキーマ変更をサポートしているストレージエンジンはまだ少ないのである。(動的スキーマ変更をサポートしているのはMySQL Clusterぐらいだ。しかも追加だけ。)デフォルトで利用出来るMyISAMはInn

    ALTER TABLEを上手に使いこなそう。
  • MySQL Clusterが苦手とするJOINを如何にして克服するべきか。

    シェアードナッシング型の負荷分散機能を持ち、なおかつ同期レプリケーションによるHA機能まで備えたMySQL Cluster最大の弱点といえば、JOINの遅さであろう。MySQL ClusterのJOINは偽りなく遅い。JOINを多用するアプリケーションでMySQL Clusterを利用するのはある意味マゾヒスティックな行為であると言えよう。何故MySQL ClusterはJOINが遅いのか?それはMySQL Clusterが分散データベースだからである。 ご存じの通り、MySQLにおけるJOINのアルゴリズムにはNested Loopしかない。他のストレージエンジンを利用していればそれでも十分実用に耐えうるぐらい高速なのだが、MySQL Clusterの場合はそうはいかない。JOINでは自ずとストレージエンジンからデータをフェッチする回数が増えるが、MySQL Clusterの場合レコード

    MySQL Clusterが苦手とするJOINを如何にして克服するべきか。
  • MySQLerのTwitterアカウントまとめ。

    松信氏の、 MyISAMとInnoDBのどちらを使うべきか Twitterで話題になってたので簡単にまとめました。 というエントリが人気を博しているが、松信氏が言うように最近はTwitterMySQL関連の話題も結構増えてきているように思う。Twitterの流行の勢いは凄まじく、今は右を向いても左を向いてもTwitter、寝ても覚めてもTwitterも杓子もTwitterという雰囲気である。従ってMySQLTwitterで盛り上がるのは当然の成り行きというもであるし、Twitterを活用しない手はない。 しかしMySQL関連の話で盛り上がると言っても「じゃあ誰をフォローすれば話に入れるんだよ?!」と多くの皆さんは疑問に思われることだろう。そこで、今日はMySQL関連のTwitterアカウントを独断と偏見と愛と勇気と努力をもって紹介する。MySQLの情報が欲しい人、もしくは話題の輪に

    MySQLerのTwitterアカウントまとめ。
  • やってはいけない!!MySQLに悲鳴をあげさせる10の方法

    いつも「MySQLを使うときはこうするべき」という観点から記事を書いているが、今日は逆に犯してはいけない過ちをリストアップしようと思う。 1. 全てのカラムにインデックスをつけるデータベース初心者がもっともやってしまいがちな間違いはコレではないだろうか。インデックスはいい。検索がとても速くなるから。しかし、それと引き替えにインデックスは更新するときにコストがかかるし、その分多くのディスクスペースを消費する。特に更新にかかるコストは時に甚大で、該当するインデックスのページがキャッシュ上にない場合はディスクからいったんそのページを読み込まなければいけない。ディスクアクセスは動作にとても時間がかかるので、インデックスが多数、例えば全てのカラムに付いていたりすると「あれ?固まったか?」というような状態になってしまうことがあるだろう。インデックスは必要なカラムにだけつけるようにテーブルを設計しよう。

    やってはいけない!!MySQLに悲鳴をあげさせる10の方法
  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
  • MySQLのプロンプトを変更する。

    MySQLのCLI(コマンドラインインターフェイス)を利用しているとおなじみの mysql> というプロンプトがあるが、実はこれは変更が可能である。MySQL CLIを利用している最中なら、promptコマンドを実行すれば良い。例えば次のように。 mysql> prompt \U [\d] >\_ PROMPT set to '\U [\d] >\_' mikiya@localhost [test] > \Uや\dはそれぞれ意味が決まっていて、それらを組み合わせることで任意の情報をプロンプトに表示できるわけである。見易いように > やスペース、括弧などを組み合わせるといいだろう。例えば何かの作業をするときには mysql> prompt 作業1 [\D]>\_ PROMPT set to '作業1 [\D]>\_' 作業1 [Tue Mar 17 07:39:28 2009]> などとする

    MySQLのプロンプトを変更する。
  • MySQL Clusterへの接続方法

    どうやってたくさんあるSQLノードに接続すればいいんだ? ロードバランスは? フェイルオーバーは? ということがあると思う。このテーマを扱ったドキュメントはありそうだちょうど良いものが見あたらない。おそらくこの点が明確でないために「よし、最近サイトのトラフィックも増えてきたことだし、いっちょMySQL Clusterを試してみようか!」という気にならず、多くの人が利用を躊躇ってしまっているのではないだろうか?なので今日はこの点について5パターンのソリューションを紹介したいと思う。 その前に、「MySQL Clusterって何だ?シラネーヨ!」って人は、MySQL Clusterの特徴やセットアップ方法などを以前にThinkITへ投稿したのでそちらを参照して貰いたい。 http://www.thinkit.co.jp/article/95/ では題。 1. mysqldをアプリと共存恐らく

    MySQL Clusterへの接続方法
  • MySQL Cluster近況

    先日のDevMeetingで見てきたものの中で、最も興味深いのはMySQL Clusterのオンラインノード追加であろう。DevMeetingではJonasができあがっているところまでデモをしてくれたのだが、まったくもって素晴らしい。彼のブログ(下記)に詳細が載っているが、あえてここでも紹介したいと思う。 http://jonasoreland.blogspot.com/2008/08/status-of-createdrop-nodegroup.html これまでMySQL Clusterを使わない、もしくは避けてきたユーザが口を揃えて言うセリフは「だってデータノードを動的に増やせないでしょ?!」であった。しかし、近い将来にリリースされるバージョンでは、オンラインノード追加という機能が追加される予定である。これは平たく言うとオンラインでデータノードを追加する機能である。(そのまんまやんけ

    MySQL Cluster近況
  • 1