2. \こんにちは/ ● ● ● ● とある企業のDBA ● オラクれない ● ポスグれない ● マイエスキューエる その正体は ● 嫁の夫 ● せがれの父 日本 MySQL ユーザ会 (MyNA) のすべり担当 #mysql_jp でツッコミをいただけると幸い
11. 通信システム リアルタイム通信が不要であればHTTP 送受信(POST)するデータ形式は? XML, JSON, MessagePack, Google Protocol Buffers, 独自シリアライズ 通信の頻度とデータ量、デシリアライズ処理の重 さ、開発&デバッグのやりやすさなどから検討(慣 れないうちはJSONオススメ) 11 12. 想定負荷 例)DAU(Daily Active Users) 10万 10万 x 20 Login/日= 200万 Login/日 = 23 Login/秒 3倍して 23 x 3 ≒ 70 Login/秒 これが日々のピーク Webサーバ1台で12程度さばけると仮定すると、Webサーバ6台 となる。(この時点はざっくり) 基本的にログインが最も重い(多くのデータを読み込み、送信 する必要がある)ので、まずはログインの負荷を目安に考える。
4月23日に都内で開催されたエンジニア向けのイベント「QCon Tokyo 2013」。急速に人気サイトへと成長したPinterestが、その裏でいかにスケーラビリティと格闘してきたのかをPinterestのエンジニア自身が紹介するセッション「Scaling Pinterest」が行われました。 この記事は「Pinterestはいかにスケーラビリティと格闘してきたのか(前編)。QCon Tokyo 2013」の続きです。 クラスタリングは怖い スケーラブルなシステムで問題なのは、データベースがひとつのサーバに収まらなくなったときにどうするのか、ということだ。 例えば、Cassandraは自動的にスケーリングしてくれて設定も簡単。可用性も高く単一障害点はない。しかし障害はそれでも起こるもので、クラスタリングの技術はまだ枯れておらず基本的に複雑なものだ。コミュニティもまだ十分ではない。 私たち
はじめまして。サービスインフラというチームに所属している@oranieと申します。前回の弊社 佐野からCassandra芸人による他のネタも・・・という話があったのでこれ幸いとCassandraネタでお茶を濁そうと思っています。そもそも他にもネタを持っているエンジニアがいる中で僕に執筆依頼を出す時点で、なんて節操の無い寛容な人達だとビックリしました。多分ダーツかなんかで決めたんだと思います。 入社以来、なぜか弊社でデファクトとして使われているデータストアのMySQLにもほとんど触らず、ひたすらCassandra運用とか他には仕事チャット上で一人だけ勝手に盛り上あがって麻呂のAAを貼りつけたり等の社内ピエロ雑用をやっています。おかげさまでエキサイティングな日々を毎日送る事が出来た為、酒の量が一時期増えたのと多少は小ネタを覚えたのでまだ運用していない方に少しでも運用・監視周りのお役に立てれば幸
こんにちは! onk です。 SAPさんが各社とも「ソーシャルアプリは負荷対策が大事」って言っていますね。弊社でも mixi アプリ(PC),mixi アプリモバイルをリリースしたときはお祭り状態だったので,ふりかえりも兼ねて MySQL のボトルネックを調べる方法を書いてみました。(幸い,モバゲーオープンゲームのリリース時はこれらの経験が役に立ったので何ともなかったです) といっても 9 割方 そもそもサーバの設定がおかしい 更新が多いテーブルなのに MyISAM エンジン for 文の中でクエリを発行 INDEX 張ってない データ量がえらいことになってる 辺りなんですけどねー。 基本は下から まず,ボトルネックを調べるときは下の層から上がっていくのが基本です。たぶん。 なので ssh でサーバに入って (LoadAverage 300 ぐらいまでならなんとか入れますね) 以下のコマン
最近読み終えたSQL PERFORMANCE EXPLAINEDという洋書がインデックスについて詳しく説明されてていい感じでした。原著はドイツ語で本人による英訳版らしく誤字いくつか目につきますが、インデックスについてここまで詳しく説明した書籍は他に例がありません。私が知らないだけかもしれませんが。 どういった内容か 複合インデックス、部分インデックス、クラスタインデックスの使うポイント、LIMIT、ORDER BY、GROUP BYでのインデックスの使われ方などが解説されてます。また、MySQL、SQL Server、PostgreSQL、Oracleの各実装の違いなども丁寧に紹介されています。対象バージョンが比較的新しいのもポイントですね。 詳しくは第二章まで読めるプレビュー版とその目次をご覧ください。 ペーパーブック版とPDF版あります 私が購入したときはペーパーブック版しかなかったの
6. Recent CPAN modules • Apache::BumpyLife • Twiggy::Prefork • Module::Install::ShareFile • App::LoadWatcher • File::RotateLogs • Plack::Middleware::AxsLog • Proclet • DBIx::DSN::Resolver [new!] 7. Proclet minimalistic supervisor use Proclet::Declare; env( PLACK_ENV => 'development', LM_COLOR => 1, ); service('web', 'plackup -p 9413 app.psgi'); service('memcached', qw!/usr/bin/memcached -p 11211!)
DDLとデータは末尾に示しますが、複合インデックスが効くはずのクエリなんだけどナめてる行数が多くて困ったというお話です。(MySQL 5.1.55) このクエリで返ってくる行数は246件なんですが、それにしてはナめてる行数(rows)がやたら多いです。where句で使っているageとlast_updateとで複合インデックスを張っているのに、です。 between使用: explain extended select id from betweeeeen where age between 30 and 35 and last_update >= 946612000 \G ↓ id: 1 select_type: SIMPLE table: betweeeeen type: range possible_keys: i1 key: i1 key_len: 10 ref: NULL rows
MySQL サーバーは、その操作を構成する多くのシステム変数を保持します。 各システム変数にはデフォルト値があります。 システム変数は、コマンド行のオプションを使用するか、オプションファイルでサーバー起動時に設定できます。 これらのほとんどは、実行時に SET ステートメントを使用して動的に変更できます。これにより、サーバーを停止して再起動しなくても、サーバーの操作を変更できます。 式でシステム変数値を使用することもできます。 グローバルシステム変数のランタイム値を設定するには、通常、SYSTEM_VARIABLES_ADMIN 権限 (または非推奨の SUPER 権限) が必要です。 セッションシステムランタイム変数値を設定する場合、通常は特別な権限は必要なく、すべてのユーザーが実行できますが、例外があります。 詳細は、セクション5.1.9.1「システム変数権限」を参照してください シス
MyISAMを使っている時key_buffer_sizeは大きくし過ぎてもいけない 2012-05-02 MyISAMのみを使っているMySQLサーバで、key_buffer_sizeのサイズは大きくても小さくてもダメですよ、という例。 その前にちょっと復習。MySQLの主なストレージエンジンといえばMyISAMとInnoDBだが、データやインデックスのキャッシュの仕組みには、 InnoDB : インデックス、データともMySQLがキャッシュ管理する(innodb_buffer_pool_sizeで設定) MyISAM : インデックスはMySQLがキャッシュ管理する(key_buffer_sizeで大きさを設定)。データはOSのキャッシュ機構におまかせ という違いがある。 ものすごく簡単に言えば、InnoDBの場合はなるべく大きな innodb_buffer_pool_size を設定し
CHAR、VARCHAR、BINARY、そして VARBINARY カラムには、インデックス プリフィックス長を指定する為に col_name(length) 構文を利用して、カラム値の最初に部分だけを利用するインデックスを作成する事ができます。BLOB と TEXT カラムもまたインデックスする事ができますが、プリフィックス長を与える 必要があります。。プリフィックス長は非バイナリ文字列タイプには文字で指定され、バイナリ文字列タイプにはバイトで指定されます。これは、インデックス エントリはCHAR、VARCHAR、そして TEXT カラムのそれぞれのカラム値の最初の length 文字で、そして BINARY、 VARBINARY、そして BLOB カラムのそれぞれのカラム値の最初の length バイトで成り立っているという事です。 ここに表示されているステートメントは、 name カ
バッチ処理にバインド変数はもうやめません? 2012/4/6 株式会社コーソル 渡部亮太 ~ バッチ処理の突発遅延を題材にして考えてみる ~ 今日お伝えしたいこと バッチ処理SQLを バインド変数化するの はやめませんか? OLTP処理SQLは バインド変数化してOKなんだけどね・・・ 自己紹介 + 所属企業の紹介 • 渡部 亮太(わたべ りょうた) SE、PM を経験後、Oracle Databaseのエキスパートを目指して転職 執筆 「プロとしてのOracleアーキテクチャ入門」 「プロとしてのOracle運用管理入門」 講演 Developers Summit 2009 Oracle LOVERS シーズン2 第2回 Oracle DBA & Developer Days 2010, 2011 • 株式会社コーソル 「CO-Solutions=共に解決する」の理念のもと、Oracle
はじめまして。ブログを担当しているNと申します。 ブログ絡みの技術ネタをと依頼をされましたが、 ブログは枯れた技術を多く使っていて目新しいことはあまりないので、 以前行ったチューニング内容について紹介したいと思います。 2008年にブログの記事データについて行ったDB+アプリでのチューニングです。 ブログの記事データはMySQLのMaster-Slave構成で保持していて、 Slaveサーバーをスケールアウトしてブログの閲覧のリクエストを処理しています。 SlaveのMySQLのバージョンは4.1でEngineはMyISAMです。 記事テーブルには以下のようなデータを保持しています。 記事ID,ブログID,記事タイトル,日付,テーマ,公開区分,ステータス,・・・ チューニング前の記事テーブルには以下のようなINDEXを張っていました。Key_name Seq_in_index Collat
2. 自己紹介 MySQL/Linux周りのスペシャリスト 2006年9月から2010年8月までMySQL本家(MySQL/Sun/Oracle)で APAC/US圏のMySQLコンサルティングに従事 主な著書に「現場で使えるMySQL」「Linux-DBシステム構築/ 運用入門」「Javaデータアクセス実践講座」 DeNAでの主な役割 安定化/パフォーマンス/運用周りの中長期的な改善活動 L3サポート/運用/トラブルシューティング – 難度の高いMySQL周りの問題の根本原因の特定と解決 多くのプロジェクト支援 社内勉強会/トレーニング – MySQLやデータベース周りのベストプラクティスを社内で共有し、 技術スキルを底上げする 技術マーケティング – 国内外のカンファレンスや、技術雑誌等
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く