Code Archive Skip to content Google About Google Privacy Terms
ソーシャルゲーム開発者なら知っておきたい MySQL INDEX + EXPLAIN入門 広く浅くを担当してます、ota です。 技術ブログ第一回から早速流用スライドで申し訳ありませんが、社内勉強会資料として作成した「MySQL INDEX + EXPLAIN入門」です。 当社でもソーシャルゲームの開発を行っていますが、このような大量のデータを使用する・クエリの速度が求められる場合にインデックスは大変重要です。 インデックスの有効な利用にはDB設計者だけではなくプログラマにもある程度の知識が最低限必要となりますが、インデックスについての初心者向け資料があまりないようです。 このスライドではプログラマに知っておいて欲しい以下の基本的な点をまとめました。 INDEXを使用する時に気をつけること WHERE句 !=、<>はインデックスが使用できない WHERE句の全てのANDにかかっていないイン
MySQL Beginners Talk に行って喋ってきました。 初心者向けMySQLの始め方 View more presentations from Masahiro Tomita 匿名ユーザーとか不要なユーザーの削除まわりの話は、手で削除するんじゃなくて mysql_secure_installation を実行すればいいと Twitter で教えてもらいました。手で消すより簡単でミスもないのでいいですね。 あれ、 mysql_install_db したあとにmysql_secure_installationするものだと思ってた。。。 #mysqlbt 2012-05-29 19:36:47 via Echofon Rabbit 私が発表で使っていたプレゼンツールは Rabbit です。 プレゼン中スライド上にツイートが流れていたと思いますが、これも Rabbit の機能です。詳し
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011Masahiro Nagano
「さくらインターネット MySQL 5.1 から5.5 に引越し1」で準備し、「さくらインターネット MySQL 5.1 から5.5 に引越し2」で実際に移行した。 今回は、準備編で調査した際に見かけた「MySQL 5.5 はMySQL 5.1 より、場合によって「数百%高速」」というのは確かなのかを見てみる。負荷のかかった状態でも高速動作するともあったと記憶しているから、期待は高まる。 また、リソースを計算する際にMySQL やI/O の応答待ちもCGI (さくらインターネットではPHP がCGI として実行されていたはず)のCPU 時間に含まれるはずだから、これらの消費も軽減されるかもしれないという期待もある。 さて、同じような作業を行った2つのサーバーがあり、ともにさくらインターネットのサーバーだ。1つはしばらく前から統計をとっていて、もう1つは最近になって統計を取り始めた。両者の尺
MySQL 5.6.5の新機能GTIDを試してみる 2012-04-23 4月10日にリリースされたMySQL 5.6.5 DMRに、GTID(Global Transaction ID)という機能が搭載された。これは、トランザクションにID(GTID)を持たせることによって、レプリケーションの進行具合を、従来の「マスタのbinlogファイル名 + ポジション」という情報ではなく、GTIDで管理できるようになるという機能である。従来のバージョンと比べた時に一番分かりやすい点としては、「change masterする時にポジションを指定しなくてよくなる」ということだろう。 MySQLのレプリケーション機能開発者Luis Soares氏のブログを参考に、GTIDの機能を試してみた。 MySQL 5.6.5のインストール MySQLのダウンロードサイトからDevelopment Releaseを
NOTE: By now there are a some good alternatives to MySQL-MMM. Maybe you want to check out Galera Cluster which is part of MariaDB Galera Cluster. MMM (Multi-Master Replication Manager for MySQL) is a set of flexible scripts to perform monitoring/failover and management of MySQL master-master replication configurations (with only one node writable at any time). The toolset also has the ability to r
V 先生から教えて頂いたので、Instagram 同様 Django/AWS 構成の Pinterest のスケールをメモ。Pinterest はいつものアカウント名が初めて 先取 されたサービスなので、今後使わないと思います。 本題に入る前に、Python には The Zen of Python (日本語) という思想があります。私はこの思想を Python でのプログラミングだけでなく、インフラの構築の際も意識するように心がけています。"Simple is better than complex" です。Instagram や Pinterest のスケールを見て、この思想がもっと好きになりました。 Instagram はよりシンプルなインフラに更改していくことで、ただスケールするだけでなく、運用や変更のコストも最小限になるように最適化していると思います。結果的に Android ア
(2012.10.15追記) report-hostではなくslave-hostになってたと@ishikawa84gさんから指摘を受けたので修正。 これで、マスターでshow slave hostsコマンドを打つだけで、スレーブの一覧が表示される。 > show slave hosts +----+------+--+----+ | Server\_id | Host | Port | Master\_id | +----+------+--+----+ | 16800111 | nanikano-dbs01 | 3306 | 16800101 | | 16800112 | nanikano-dbs02 | 3306 | 16800101 | | 16800113 | nanikano-dbs03 | 3306 | 16800101 | +----+------+--+----+ repo
仕事の合間に雑記です。またMySQLに関する記事です。Fusion-IOをMySQL DBマスタに使う時はスレーブ(こっちもFusion-IO)が耐えられるか検証した方が良いよって話。 おれが担当しているシステムは他のシステムの更新情報をかき集めてまとめるようなシステムです(あいまいな説明ですみません)。早い話、更新系の処理がかなり多いです。 更新処理が多いときにデータベースに施すテクニックの一つにデータ分割があると思いますが、マスタを分割しまくってサーバを何十台もラッキングして運用するのは骨でした。そこでioDriveの力を借りることにしました。ioDriveの力でDBを数台に集約してしまおうと。一応説明しておくとioDriveとはFusion-IO社のプロダクトで、PCIe接続の超高性能ストレージです。詳しくは下記のリンクを参照。 http://www.fusionio.com/pla
副題: ビッグデータ時代の非ビッグデータ集計戦略 PHP と MySQL を使ってカジュアルに MapReduce する MyMR というものを作ってみました. とても安直な名前ですね. yuya-takeyama/mymr - GitHub とりあえず試してみる MyMR には, MapReduce のマナー (?) に従って, WordCount するためのサンプルコードとサンプルデータを同梱してみました. map/reduce 関数は PHP で書かれています. WordCount.php MySQL のユーザ名・パスワード等は適宜置き換えて下さい. 見事, 入力テーブル内の単語の出現回数を集計することができました. MyMR の特徴 データの入出力はいずれも MySQL のテーブル 入力と出力のデータベースは同じでもいいし別でもいい (入力はプロダクションサービスの Slave サ
TIPSです。このようなテーブルがありまして、 CREATE TABLE `link` ( `id1` int(11) NOT NULL DEFAULT '0', `id2` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id1`,`id2`), KEY `ix1` (`id2`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;データは以下のような感じで、このときは2,900万レコードありました。 +---------+---------+ | id1 | id2 | +---------+---------+ | 5 | 69 | | 5 | 1022 | | 5 | 1487 | … | 1081 | 2021414 | | 1081 | 2087813 | | 1082 | 11 | | 1082 | 225
みなさん mysqldump は好きですか? 自分はどっちでもありません。 MySQLでよくあるMaster-Slave構成を作る手順は以下のようになると思います MasterからSlaveとなるサーバに一貫性を保った状態のコピーをし、そのデータのバイナリログのファイル・ポジションをメモ。 SLAVEでデータをリストアし、Masterのホスト名、レプリケーションに使うユーザ名・パスワードとメモしたバイナリログのポジションをCHANGE MASTER文に渡し、START SLAVE 一貫性の取れたコピーを作成するためにmysqldumpやxtrabackup、LVMなどでのスナップショットが利用できますが、もっとも簡単な方法がmysqldumpだと思います。 mysqldumpで一貫性のあるデータをとり、その際のバイナリログポジションを記録するには $ mysqldump --single-
Percona XtraDB とは? † Percona社が作っている、MySQLのInnoDBを拡張した派生プロダクトが「XtraDB」です。 http://www.percona.com/ ↑ XtraDBとは? † MySQLの新ストレージエンジン Percona XtraDB とは!? : Yorozuyah.com 12月 24, 2008 MySQL 5.1GA版が先日リリースされましたが、新機能の一つとしてストレージエンジンのプラグイン化が挙げられます。 早速、その機能を利用し、ロシアのMySQLコンサルティング会社、Perconaより、新ストレージエンジン「XtraDB」がリリースされました。 Announcing Percona XtraDB Storage Engine: a Drop-in Replacement for Standard InnoDB 以下、概要をま
レプリケーションはMySQLで最もよく使われる機能のひとつだ。レプリケーションは基本的に非同期でデータの複製を行う仕組みになっているのだが、非同期故にどうしても逃れられない問題がある。そのひとつが今回のテーマ、遅延である。というと、MySQLのレプリケーションはすぐに遅延が生じてしまうように感じてしまうかも知れないが、そのようなことはない。ほとんどの場合は即座にスレーブの更新が行われる。 なぜ遅延は発生するのか、どのように遅延が起きていることを調べるのか、どのように回避するのかということを本エントリでは解説したい。うまく遅延と付き合って、MySQLのレプリケーションをより快適に運用してもらえればと思う。 そもそも遅延とは何かMySQLのレプリケーションは非同期で行われる。これは準同期でも同じであり、スレーブにおいて更新が起きるのはマスターよりも一瞬遅れてしまう。これは非同期であるが故に逃れ
やぁ。可愛いアイコンでお馴染みの@nekokakだよ。 mysql-casualとか言ってるけどカジュアルな記事が@oinumeさんくらいしかないよね。 ドン引きだね'`,、('∀`) '`,、 ということでガクンと敷居を下げようって感じで超絶カジュアルな話をしてみようと思うんだ。 カジュアル運用していると、「あれなんかこのテーブルまじレコード数おおすぎね?」 とかあるあるですよね。 そこでカジュアルにcountして見るわけです。 InnoDBのテーブルになのにそれもmsaterに対して。 カジュアルですね。 mysql> select count(*) from accesslog; +----------+ | count(*) | +----------+ | 11676738 | +----------+ 1 row in set (1 min 36.99 sec)1分半くらいかか
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く