タグ

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

  • (告知)INSIGHT OUT 2011で登壇します。 #insightout

    データベースのお祭りとも言える(?)INSIGHT OUT 2011でスピーカーとして参加させて頂くことになった。INSIGHT OUTは有料(当日2000円、事前登録1000円)のカンファレンスである。対象のデータベース製品はOracleSQL Server、MySQL、PostgreSQLであり、海外からも著名なエンジニアが来てディープな技術の話が聞ける。(MySQLは4セッション)あのAsk TomのTomさんも来るというではないか!これが1000円なら超お買い得である。僭越ながら、筆者はそうそうたる顔ぶれに混じって、MySQL Clusterについて話させて頂く予定である。

    (告知)INSIGHT OUT 2011で登壇します。 #insightout
    hogem
    hogem 2011/10/03
    INSIGHT OUT 2011 って存在を知らなかったんだけど、DBに詳しい人らの話をこれだけ聞けて1000円(事前登録)てのは安いな #insightout
  • 「優れたMySQL DBAを見分ける27+3の質問」に対する回答例

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

    「優れたMySQL DBAを見分ける27+3の質問」に対する回答例
    hogem
    hogem 2011/04/09
  • プロファイリングで快適MySQLチューニング生活

    MySQL 5.1からデフォルトで有効になっている便利な機能としてプロファイリングというものがある。MySQL 5.0でも利用出来たのだが、実験的な機能という位置づけであり、搭載されていたのはGPL版のMySQL Community Server限定だった。MySQL 5.1からは全てのエディションでプロファイリングを利用することができる。 プロファイリング機能を利用すると、クエリの状態(特に状態遷移やリソースの消費状況)を詳細に分析できるのでとても便利だ。MySQLエンジニア必携の機能といって良いだろう。というわけでプロファイリング機能の使い方を説明しよう。 MySQLサーバにログインしたら、まずは次のようにしてプロファイリングを有効にする。 mysql> SET profiling=1; すると、クエリの情報が記録されるようになる。次に、分析したいクエリを実行する。クエリはなんでもいい

    プロファイリングで快適MySQLチューニング生活
    hogem
    hogem 2010/09/17
    set profiling=1; show profile;
  • SYSDATE()とNOW()の違い。

    MySQLには、現在時刻を求める関数としてSYSDATE()とNOW()という2つの関数が実装されている。そして、それらは微妙に動作が違う。SYSDATE()は関数が呼び出された瞬間の時刻を返すのに対して、NOW()はクエリ開始時の時刻を返す。例えば、100秒かかるような長いクエリにおいて両者を利用した場合、SYSDATE()では結果に最大100秒の差が生じるのに対して、NOW()では差が生じない。NOW()では関数が最初に実行された時に結果がキャッシュされ、以降はキャッシュされた値が利用されるからだ。 次のようにSLEEP()を利用するとわかり易いだろう。 mysql> SELECT SYSDATE(), SLEEP(100), SYSDATE(); +---------------------+------------+---------------------+ | SYSDATE(

    SYSDATE()とNOW()の違い。
    hogem
    hogem 2010/09/02
    NOWはクエリを叩いた時間。SYSDATEは関数を実行した時間 / --sysdate-is-now オプションをつけるとSYSDATE == NOW になるらしい。ほえー
  • 残暑なんて吹き飛ばすぐらい熱いベンチマークをやろうぜ!!

    なんて幸運なことなんだろう。 実は最近、個人的にサーバーマシンを借りるという機会があった。そのマシンに搭載されているCPUコア数は合計48である!大事なのでもう一度いう。日語でいう。48CPUコアだ!一昔前なら数千万円もしたスペックだろうが、最近は実にリーズナブルにお求めいただけるようである。(価格についてはふせておく。)このマシンには2.2GHzのOpteron 6174が4つ搭載されている。つまり、ひとつのパッケージに12個のコアが格納されているのだ。これはすごい。いや、むしろどうしてこうなった?!というべきか。そのようなマシンを目の前にすると時代はメニイコアに向かっているんだなあと実感せざるを得ない。 今後、CPUがどんどんメニイコアに向かう流れはさけれない。コアを増やさなければCPUの性能が(システム全体としての性能が)向上しないからだ。CPUの演算回路に対して半導体素子をたくさ

    残暑なんて吹き飛ばすぐらい熱いベンチマークをやろうぜ!!
  • InnoDB Pluginことはじめ。快適ストレージエンジン生活はじまる!

    MySQL 5.1.38からMySQL体にInnoDB Pluginバンドルされている。一部の先駆的なユーザー以外に、「InnoDB使ってますよ!」もしくは「検証してるよ!」という話をあまり聞かない。そもそもであるが、InnoDB Pluginってなんぞ?!という人が多いんではないかと思うのだが、実際はどうなのだろう?現在はRC版(リリース候補版)という位置づけのInnoDB Pluginであるが、一部影響度の高いバグが残っていたりしてGA版ほどの安定性は求められないものの、ほとんど実用に耐えうる品質になっているといえる。そんなわけで、今日は改めてInnoDB Pluginの使い方・使いどころについて説明するので、ぜひ皆さんの手でInnoDB Pluginを評価してみて頂きたい。 なお、以下の解説は現在の最新バージョンである、InnoDB Plugin 1.0.6を前提にしているので、将

    InnoDB Pluginことはじめ。快適ストレージエンジン生活はじまる!
  • 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のプロトコルをキャプチャリング
    hogem
    hogem 2010/04/23
  • Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン

    Webサービスでは、世界中からのトラフィックを捌く必要があるため、いくらチューニングしようとも一台のRDBMSでは捌ききることが出来ないのが常だ。MySQLは最初からマスター・スレーブ型のレプリケーション機能が搭載されており、スレーブをたくさんぶら下げることによって参照の負荷をスレーブに割り振るというスケールアウトによってその問題に対処してきた。スレーブによるスケールアウトは、参照(=PV)が多いWebサイトと非常に相性が良く、幾多のWebサイトにおいて実績を作ってきているし、まだまだ利用されている。 しかしながら、サイトのトラフィックが劇的に増加してくるようになると、レプリケーションによる負荷分散では追いつかなくなってきた。そこで人々がとった選択肢は、memcachedを利用することである。memcachedはインメモリ型の高速なKVSであり、参照・更新性能はMySQLより格段に高い。M

    Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン
    hogem
    hogem 2010/04/15
    スケールアウトっぷりがすごいな
  • 第102回カーネル読書会 at 楽天のプレゼン資料公開しました。 #kernel100329

    昨日、Yokohama Linux Users Group(吉岡さん主催)の第102回カーネル読書会において発表を行ったので、その時の資料を公開した。 カーネル読書会は1999年から続く由緒正しいイベントであり、参加者も多く、なおかつビデオ撮影されていたので結構緊張していたのであるが、皆さんフレンドリーだったので比較的リラックスして発表することが出来たと思う。USTでストリーミングされていたので、イベントに参加出来なかったよ!という人は録画を観て頂きたい。DTraceはとても有益な仕組みであり、MySQLは優れたRDBMSソフトウェアである。これまで使ったことがないという方は、この機会にぜひ利用を検討して頂きたい。 第102回カーネル読書会では、楽天の加藤さん(元サン・マイクロシステムズ)と共同で発表した。加藤さんがDTraceの概要について説明してくださり、その後俺がDTraceを使った

    第102回カーネル読書会 at 楽天のプレゼン資料公開しました。 #kernel100329
    hogem
    hogem 2010/03/30
  • 語り尽くされたことを改めてブログに書くことの意義

    先日書いたSQLインジェクションの記事のブコメに、 otchy210 う~ん、このくらいの解説なら腐るほどある気がするぞ。何でこんなにブクマされてるの? というものがあり、他にも「なんで今さら?」的なコメントがあったりして色々と考えさせられてしまった。「何故自分はこの記事を改めて書かなければいけないと思ったのか?」と。ブコメに全力で反応するようでいささか中二病的で恥ずかしいが、今日は「既に多方面で語られていることを改めて書く」ことの意義について、自分が出した結論について語ってみようと思う。 より多くの人の目に止まる。SQLインジェクションは非常に危険なセキュリティ脆弱性であり、今も多くのWebサイトが被害に遭っている。SQLインジェクション攻撃がなくならないのは対策が充分でないサイトがあるからであり、対策が充分でないのはSQLインジェクションに対する知識が足りないからである。従って、出来る

    語り尽くされたことを改めてブログに書くことの意義
    hogem
    hogem 2010/01/20
  • InnoDBのファイルサイズ管理

    最近、InnoDBのデータ領域(テーブルスペース)が成長してしまって元に戻すことが出来ない場合の対処についてよく質問されるので、今日はテーブルスペースが成長することへの対策について説明しよう。(ここのところMySQLネタが続いているが、Planet MySQL語版を意識しているわけではないのであしからず!!<<ホントかよ?!>俺) InnoDBのテーブルスペースが成長してしまうのは、ズバリ自動拡張しているからである。テーブルスペースに対して何もオプションを指定しないと、デフォルトでは次のような設定と同じテーブルスペースが作成される。 [mysqld] innodb_data_file_path=ibdata1:10M:autoextend サイズは10MBしかないが、自動拡張するのである。自動拡張してしまうと何が問題なのかというと、データが増えた場合にファイルシステムの空き領域を使い切

    InnoDBのファイルサイズ管理
    hogem
    hogem 2010/01/13
    innodb_file_per_tableでテーブルごとにinnodbをわけたほうが運用が楽だよっていうお話
  • mysqldumpの出力結果をデータベースごとに分割するパッチ

    先日は、mysqldumpの出力結果をawkを使ってデータベースごとに分割する方法について紹介したが、セミナーも終わったことなのでパッチを書いてみた。awkで分割するというのはUNIXユーザーの伝統芸能なので嫌いではないがまどろっこしいと感じる方も居るかもしれない。そもそもmysqldump自体がそのような機能をサポートしていれば問題ないのだから! というわけで、興味のある人は次のバグレポートからパッチをダウンロードして試してみて欲しい。 http://bugs.mysql.com/45003 そして試した後にはフィードバックを残して頂きたい!! パッチの適用方法は以下。 まずはMySQLのソースコードを入手する。ダウンロードサイトから最新のものを入手するか、bzrでゲットして頂いて構わない。 ダウンロードサイト: http://dev.mysql.com/downloads/mysql/

    mysqldumpの出力結果をデータベースごとに分割するパッチ
    hogem
    hogem 2010/01/12
    ちょろちょろしたスクリプト書いてたけど、これ使えば解決すっかな
  • MySQLに纏わる10の都市伝説

    誰の口から飛び出したのかは定かではないが、巷ではMySQLにまつわる様々な「都市伝説」がまことしやかに囁かれているようだ。恐らくMySQLに対する理解が低い人や、MySQLがあまり好きではない面々によってFUDっぽく言われているのだと思うが、世の中にはそのような「都市伝説」を真に受けてしまう人が居るのもまた事実であである。MySQLにおける昨今の開発スピードには目覚ましいものがあり、MySQLは性能・安定性・使い易さ共に進化し続けている。(特に先日リリースされたMySQL 5.5は性能・安定性・使い易さを両立している優れたバージョンだ!!)しかし「都市伝説」で語られることは総じて「MySQLはダメな子ちゃん」であるという烙印を押すものばかりであり、MySQLerとしてはそのような言われ無き汚名を全身全霊をもって晴らさなければならない使命を背負っている。そこで、今日はMySQLについて語られ

    MySQLに纏わる10の都市伝説
    hogem
    hogem 2010/01/12
  • さらにMySQLを高速化する7つの方法

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

    さらにMySQLを高速化する7つの方法
    hogem
    hogem 2009/03/24
  • 漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法

    ちょっとキャッチ−なタイトルをつけてしまったが、今日は独断と偏見でMySQLを高速化する方法を10個紹介しよう。MySQLサーバをチューニングするときや初期導入する場合などに参考にしてもらいたい。 1. バッファを増やす、または減らす チューニングの基中の基であるが、適切なバッファサイズを設定することはパフォーマンスチューニングの要である。主なバッファは次の通り。 innodb_buffer_pool_size・・・InnoDBだけを利用する場合は空きメモリの7〜8割程度を割り当てる最も重要なバッファである。余談だが、実際にはここで割り当てた値の5〜10%ぐらいを多めにメモリを使うので注意が必要だ。 key_buffer_size・・・MyISAMだけを利用する場合は、空きメモリの3割程度を割り当てるといい。残りはファイルシステムのキャッシュ用に残しておこう。 sort_buffer_

    漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法
    hogem
    hogem 2009/03/24
  • MySQL 5.1 GA

    MySQL 5.1が正式リリースされた。 β〜RC(リリース候補)版の期間が長かったので既にご存じの方も多いであろうが、あえてMySQL 5.1の新機能をおさらいしておくと、 パーティショニング RBR(行ベースレプリケーション) イベントスケジューラ XMLサポート プラグインAPI ログテーブル などである。いくつかについては過去にThinkITへ投稿したので、各機能の詳細について記事を読んで欲しい。MySQL 5.1のリリースはさんざん延期されてきたわけであるが、これも全ては品質を高めるためである。正式リリース時においてバージョンがすでに5.1.30である。初期バージョンである5.1.1からは非常に長い道のりであり、その間多くのバグFIXがなされてきたことを示すものであり、5.1から追加された新機能についても十分なテストが実施されてきた証であると言える。 5.1では、性能面で5.0か

    MySQL 5.1 GA
    hogem
    hogem 2008/11/30
    mysql5.1 正式リリース
  • 勝手に図解するmemcached

    先日、Brian Akerとミクシィの前坂氏によるmemcachedのセミナーがあった。 実践で使用する上での話や開発最前線の話が聴けたため、セミナーは非常に盛況であった。筆者にとっても非常に勉強になる内容だった。セミナーの資料はBrian Aker氏のサイトから入手できるのでセミナーに参加出来なかったひとはこの資料を読んで自習して頂きたい。 が、いかんせん氏のスライドはパッと見ただけではなんとなく分かりづらいように俺は思う。なぜだろうか?それはきっと図がないからだ・・・と勝手に想像する。オトコたるもの、時には勝手な憶測で突き進むのもアリだ。ちなみにBrianのスライドはほとんど要点の箇条書きになっている。これでは解説がないと、特に新規にmemcachedやMySQLを学習している人たちには分かりづらいだろう。 というわけで氏に代わり、memcachedがどのように既存の仕組みを置き換える

    勝手に図解するmemcached
    hogem
    hogem 2008/11/02
    app => mysql => memcachedというデータの流れを図解してる
  • 1