はじめまして。ブログを担当しているNと申します。 ブログ絡みの技術ネタをと依頼をされましたが、 ブログは枯れた技術を多く使っていて目新しいことはあまりないので、 以前行ったチューニング内容について紹介したいと思います。 2008年にブログの記事データについて行ったDB+アプリでのチューニングです。 ブログの記事データはMySQLのMaster-Slave構成で保持していて、 Slaveサーバーをスケールアウトしてブログの閲覧のリクエストを処理しています。 SlaveのMySQLのバージョンは4.1でEngineはMyISAMです。 記事テーブルには以下のようなデータを保持しています。 記事ID,ブログID,記事タイトル,日付,テーマ,公開区分,ステータス,・・・ チューニング前の記事テーブルには以下のようなINDEXを張っていました。Key_name Seq_in_index Collat
MySQL の勉強をせずにフレームワーク等で SQL を書かずに Web サイトを構築していました。データ数も2万件程度でしたので、そこまで困ることはありませんでしたが、今回100万弱の商品データを扱う機会ができたので、MySQL のチューニングや発行する SQL について見直す機会がありました。 この記事では MySQL を高速化するのに行った対策など勉強したものを自分用にメモしておきました。 条件式で比較するカラムにインデックスを使用して高速化 商品コードで存在しない商品を見つけて、商品をDBに登録するという処理を行っている場合、4万件超えたころから処理に2秒以上かかるようになってきます。12万件超えた頃には10秒程度かかるようになってしまいましたが、商品コードのフィールドに対してカラムインデックスを貼ることで0.2秒に短縮することができました。 MySQL のリファレンスにも以下のよ
MySQL::Replication - Decentralised, peer-to-peer, multi-master MySQL replication MySQL::Replication is a replacement for MySQL's built-in replication. The reason for this module is that there are a number of issues with MySQL's built-in replication: * You can't have multiple masters * There is a possibility of infinite replication loops * Time is wasted by time slicing * Queries may get replayed a
Tcpdump Packet Loss on Busy ServersOften I run into problems when trying to use mk-query-digest with tcpdump on “very” busy hosts. You might be thinking, “very busy is a relative and unquantifiable term,” and you’d be right, so I’ll phrase this differently. Let me give a little background to the problem first. Mk-query-digest tries to handle dropped or missing packets gracefully, but even so they
Maatkitのツール群は,毎月bugfixや機能増強,新ツールがリリースされていて,以前紹介した時から5つの新しいツールが登場しています. maatkitを一通り使ってみたメモ - ククラフト # Release Notes November 2010, version 7041 # Release Notes October 2010, version 6960 # Release Notes September 2010, version 6926 # Release Notes August 2010, version 6839 # Release Notes July 2010, version 6652 # Release Notes June 2010, version 6457 Google Code Archive - Long-term storage for Goog
#hbstudy11でid:marqsさんがMaatkitに関する発表をしていて,僕も仕事でちょこちょこ使っていたので ダイアリーあたりに書きますね と云ったきり,書く書く詐欺になっていたので,さすがに書こうと思います. 割とみなさん知っているツールだと思うのですが,ウェブ上で日本語の情報がなかなか見つからないので,何かのお役に立てればと思います.というか英語読めってことなのかもしれませんが. Mattkit 公式 MySQL Tools and Management Software to Perform System Tasks by Percona Maatkitは「実践ハイパフォーマンスMySQL」の著者であるBaron Scheartzによって作り始められた,MySQLやPostgreSQLのようなオープンソースのデータベースのための高品質なコマンドラインツールです. 実践ハイパ
このブログは【カミタニブログ】へ引っ越しました。当該記事はこちらになります。 お手数をおかけしますが、よろしくお願いいたします。 今回もざっくり作業手順だけლ(・ิω・ิლ) 対象 CentOS5.3 mySQL5.1.52 今回はこちらの記事を参考にさせて頂きました。 データベースサーバー構築(MySQL) - CentOSで自宅サーバー構築 CentOS 5.2をGUIでインストールしてLAMP環境を作ったよ - bojovs blog あざます>< すでにインストールされてないか確認 mysqlがすでにないか確認。 yum list installed | grep mysqlないので、mysql serverをインストール。 yum -y install mysql-server php-mysql my.cnf編集 vi /etc/my.cnfこちらの記事を参考にさせて頂きつつ、
ソーシャルゲーム開発者なら知っておきたい MySQL INDEX + EXPLAIN入門 広く浅くを担当してます、ota です。 技術ブログ第一回から早速流用スライドで申し訳ありませんが、社内勉強会資料として作成した「MySQL INDEX + EXPLAIN入門」です。 当社でもソーシャルゲームの開発を行っていますが、このような大量のデータを使用する・クエリの速度が求められる場合にインデックスは大変重要です。 インデックスの有効な利用にはDB設計者だけではなくプログラマにもある程度の知識が最低限必要となりますが、インデックスについての初心者向け資料があまりないようです。 このスライドではプログラマに知っておいて欲しい以下の基本的な点をまとめました。 INDEXを使用する時に気をつけること WHERE句 !=、<>はインデックスが使用できない WHERE句の全てのANDにかかっていないイン
やってみたかったからついやってみた。 #!/usr/bin/perl use strict; use warnings; use Data::Dump qw(dump); use DBI; use Test::More; use Test::Exception; use Test::mysqld; use Test::TCP; sub setup_master { # http://dev.mysql.com/doc/refman/5.1/en/replication-howto-masterbaseconfig.html my $mysqld = Test::mysqld->new( auto_start => 2, mysqld => '/usr/sbin/mysqld', my_cnf => +{ 'port' => empty_port(), 'log-bin' => 'mysql
こんにちはこんにちは。11インチMacBook Airが欲しくてたまらないiwanagaです。 前回の記事 が幸いにもご好評を頂けた様で非常にうれしいです。嬉しくなって、ついがんばって第2弾を書いてしまいました。引き続き、ソーシャルゲームでよく使われるテーブルタイプ毎にちょっとしたテクニックを紹介していきます。 今回はちょっとライトな感じ&読み物になってしまっていますが「ユーザID単位で1つだけ持つデータ」と「パラメータなどのマスターデータ」についてご説明したいと思います。ちなみに次回はInnoDBのデータ構造の簡単な説明と複合プライマリーキーのデータについて、その次で紹介し損ねたちょっとマニアックなテクニックや性能管理のための手法を紹介することを予定しています。 その前に。。。 先日行われた JAPAN INNOVATION LEADERS SUMMIT で弊社松信が「ソーシャルゲームの
Q4M (Queue for MySQL) is a message queue licensed under GPL that works as a pluggable storage engine of MySQL, designed to be robust, fast, flexible. It is already in production quality, and is used by several web services (see Users of Q4M). To start using Q4M, download either a binary or source distribution from the install page, and follow the installation instructions. A small tutorial is also
前から気になっていた Amazon RDS を触ってみた。gumiは自前でインスタンスにMySQLをセットアップせずにRDS使っているし、read replicaも出てスケーリングに関してどの程度カバーできるのか興味もあった。やっぱりMySQLの構築や運用は任せられたほうが楽なので。作り方はとても簡単。AWS Management Console上ではいくつかのパラメータをいれてクリックしていければ作れる。最初にインスタンスタイプとストレージ容量などを決める必要があるが、これは後から変更も可能。ここで特徴的なのは Multi-AZ だと思う。これはおそらくレプリケーションしていて、Masterとは異なるAvailability Zoneにあるインスタンスでホットスタンバイ機が設けられる。万が一、Masterのデータセンターごと落ちちゃった時やメンテナンス時にこのスタンバイ機にフェールオーバ
先月、Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジンというエントリでSPIDERストレージエンジンによるスケールアウトが凄い!という話を書いた。SPIDERストレージエンジンは凄いヤツだが、ノウハウがあまりウェブ上で見つからない。唯一見つかる日本語の記事は、ウノウラボによる「国産MySQLストレージエンジン「Spider」の作者、斯波健徳氏に聞く 」だけである。SPIDERストレージエンジンは斯波氏による単独の作品であるため、斯波氏は開発だけで手いっぱいであり、使い方の紹介記事を書くことまでは手が回らないのであろう。こんな凄いストレージエンジンをドキュメントが足りないせいで使って貰えないなんて勿体ない!! というわけで、今日はSPIDERストレージエンジンの基本的な使い方について紹介する。少し長いエントリであるが、最後までお付き
こんにちは。プラットフォーム開発部のますやまと申します。 はじめに 梅雨が近づいてきてだんだん蒸し暑さを感じる季節になってまいりました。毎年この時期になると、我が家では梅酒を作ります。梅酒なんて完成品を買ってくればいいじゃない、と思うかもしれませんが、市販品だとなかなか好みの味に出会えないものです。そこで梅を数kg買ってきて漬けるわけですが、毎年ホワイトリカーや焼酎、ブランデーと酒を変えてみたり、氷砂糖の量を変えてみたり、はちみつにしてみたりするうちに、自分の理想の味に近づいてきました。やはり完全に自分好みにできると満足度は高くなります。 普段、グリーではオープンソースのソフトウェアを使用することがほとんどですが、やりたいことと「ちょっとちがう」ということが多々あります。そこで、複数のソフトウェアを組み合わせて何とか用途に合わせて使ったり、パッチを書いて挙動を変えてしまうのが一般的だと思い
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
UPDATE: Oracle officially released memcached daemon plugin that talks with InnoDB. I'm glad to see that NoSQL+MySQL has become an official solution. It's still preview release but will be very promising. Let's try it to make it better! Most of high scale web applications use MySQL + memcached. Many of them use also NoSQL like TokyoCabinet/Tyrant. In some cases people have dropped MySQL and have sh
2011年はサーバサイド JavaScript の年! サーバサイド JavaScript の本命は node.js! ということで割と普通のウェブアプリケーションを node.js で作るためのチュートリアルを書いてみました。WebSocket とか新しめの話題は結構見ますが、PHP とかで普通のウェブアプリ作ってる人向けのチュートリアルとかあんま見ないような気がしたので、って感じです。 チュートリアルの内容ですが、コード量が少なめで機能的にも分かりやすそうなモノということで、短縮 URL ウェブアプリケーションを作ってみることにしました。bit.ly とか t.co とか nico.ms みたいなアレです。短縮 URL のデータは MySQL に保存します。 結構長文になっちゃったので、先に目次置いときます。 node.js のインストール npm (Node Package Mana
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く