db tech showcase 2013 Tokyoでの発表資料です。 [D14] MySQL 5.6時代のパフォーマンスチューニングRead less
![[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo](https://cdn-ak-scissors.b.st-hatena.com/image/square/7a1595d56a22d7e152f0c4c44cf3168a5c66fcbf/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2F20131110tuningonmysql5-131117180858-phpapp02-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
去年ソートに関する記事を書いたが、今日はその続きである。 MySQLでEXPLAIN SELECT...を実行するとExtraフィールドでよく見かける「Using filesort」という文字列。Filesortって一体なんだろう?と思ったことはないだろうか。単刀直入に言ってFilesortの正体はクイックソートである。 クエリにORDER BYが含まれる場合、MySQLはある程度の大きさまでは全てメモリ内でクイックソートを処理する。ある程度の大きさとはsort_buffer_sizeであり、これはセッションごとに変更可能である。ソートに必要なメモリがsort_buffer_sizeより大きくなると、テンポラリファイル(テンポラリテーブルではない)が作成され、メモリとファイルを併用してクイックソートが実行される。 Filesortは全てのソート処理において実行されるわけではない。前回の記事
メンテナンスなどで、マスターデータを書きかえるときは、 use strict; use warnings; use DBIx::Handler; my $db = DBIx::Handler->new("dbi:mysql:test;", "root", "", { RaiseError => 1}); $db->dbh->do(q{ CREATE TABLE IF NOT EXISTS hoge ( id int unsigned not null auto_increment primary key, test int unsigned not null ) ENGINE=InnoDB CHARSET=utf8 }); my $txn_guard = $db->txn_scope; $db->dbh->do(q{TRUNCATE TABLE hoge}); for my $counte
MySQLがダウンしたときに自動的に別のMySQLへ処理を引き継ぐことで、高可用性を実現するフェイルオーバーツール「MySQL-MHA: MySQL Master High Availability manager and tools」がオープンソースとして公開されたことを、作者の松信嘉範(まつのぶよしのり)氏がブログで伝えています。 Yoshinori Matsunobu's blog: Announcing MySQL-MHA: "MySQL Master High Availability manager and tools" 松信氏はモバゲーなどで知られるDeNAに勤務しており、MySQL-MHAによる自動フェイルオーバー機能はDeNAのインフラ運用を支えているとのこと。同氏のブログから引用します。 Difficulties of master failover is one of
4月11日から米サンタクララで行われた「MySQL Conference & Expo 2011」。このイベントでDeNAの松信嘉範(まつのぶよしのり)氏が、同社の大規模なMySQLの運用を支えている技術とツールについてのセッション「Automated, Non-Stop MySQL Operations and Failover」を行いました。 プレゼンテーションの中で、社内で利用しているフェイルオーバーの自動化ツールをオープンソース化することにも触れています(英語のドキュメントも作成中とのこと)。 MySQLの大規模運用における自動フェイルオーバーは、特にクラウドでのMySQLの利用が増えるにつれてニーズが高まる分野と思われます。セッションのスライドが公開されていますので、そのポイントを紹介していきます。 自動化されたノンストップなMySQLの運用 ソーシャルゲームでは高可用性が強く求
随分と更新が空いてしまったが、「優れたMySQL DBAを見分ける27+3の質問」に対する回答例(漢バージョン)を紹介しよう。実は質問を掲載した際「難しい!」というコメントが非常に多く、もう少し易しい質問にするべきだったかと思って次のように呟いてみたのだが・・・ 非常に心強くて安心した。さすがに日本を代表するMySQLのエキスパートである。出題のレベルは間違ってはいなかった!! そんなわけで、回答の方に移ろう。 MySQLのサーバープロセスはいくつある?ひとつ。mysqldはシングルプロセス・マルチスレッドモデルを採用しているので、"サーバー"プロセスはひとつである。多くの場合、Linuxなどでmysqldを動かす場合には、お供にmysqld_safeも常に動いていることが多いが、mysqld_safeはサーバーではなく、mysqldのためのラッパーであるので数には含めない。 rootユー
mysql, ssd, fusionioSSD(Intel X25-M)の載ったサーバとFusionIOの載ったサーバでALTER TABLE実行時間を比較する機会があったので結果を貼っておきます。ちなみに、データ+インデックスのサイズが30GBくらいのテーブルにInnoDB PluginのFast Index Creationでインデックスをはったときの実行結果です。実行時間だと3倍差ですが、SSDがRAID0でIOPSが倍になっている点を考慮すると、FusionIO単体はIntel X25-M単体よりALTER TABLEにおいては6倍パフォーマンスがよいということでしょうか。仮想化の有無や、ファイルシステムの違い、ハードウェアスペックの違いなどがあるので、あくまで参考情報です。FusionIO 320GB / No RAID / XFS / 仮想化なし / MySQL 5.1.55
Small guide for Redmine installation on CentOS 5.3. Requirements: Ruby 1.8.7 RubyGems MySQL 4.1 or higher (recommended) openssl + openssl-devel zlib + zlib-devel Lets install all required packages before compiling ruby. First of all, lets add rpmforge repository to your default CentOS installation: rpm –import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt rpm -ihv http://dag.wieers.com/r
[ruby]DBI経由Mysqlのquoteメソッド DBIを経由してMysqlのquoteメソッドを呼ぶと、なぜかメソッドがないことになっている。 たとえばこんなコード。 irb(main):001:0> d = DBI.connect('dbi:Mysql:...', ...) irb(main):001:0> d.quote('foo') /usr/local/lib/ruby/gems/1.8/gems/dbi-0.4.2/lib/dbi/handles/database.rb:179:in `quote': undefined method `quote' for # (NoMethodError) ググってみると、既に困った方がおられて。 dbh.quote name みたいな事をやっていたんだけど、本番環境に乗せたら動かないので何かと思って調べた ruby-dbiのquote
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く