タグ

MySQLに関するtwainyのブックマーク (67)

  • デブサミ2011レポート DeNAの実装技術を紹介! 大規模Webサービスのためのデータベース技術の現在・未来

    「モバゲータウン」を中心に、急成長し続けている株式会社ディー・エヌ・エー(DeNA)。そのバックヤードでは、膨大数のDBサーバを安定稼働し、高速化を図り、運用を効率化するために、様々な取り組みが行なわれている。はたして、どのような指針のもと、どのような対応がなされているのか、同社統括IT基盤部の松信嘉範氏が「優先順位の考え方とそれに伴う対応策」について語った。 今後のMySQLの課題はレプリケーションの並列化 “The Best Online Database”とは、大規模Webサービスを稼働させる上で、数年前よりMySQLが提唱し、目指しているデータベースの理想型である。その要件のなかでも特にセッションでは「高い性能」や「高い可用性」を実現するための施策と、そのために今後求められる事項についての松信氏による考察が紹介された。 1日あたり20数億PVというMobageを支えるために

    twainy
    twainy 2011/03/11
  • 『OracleよりもMySQLの方が便利だと思うSQL構文比較』

    mysql> select sysdate(); +---------------------+ | sysdate() | +---------------------+ | 2010-08-18 23:11:27 | +---------------------+ 1 row in set (0.00 sec) ■ 2. シーケンス作らなくていい 表の列にauto_increment属性をつけることで、insert時に勝手に採番してくれる。単に固有のID番号を振りたい時は便利すぎる。何でOracleにはないんだ?ってくらい。テーブルごとにシーケンス作って管理するのって結構めんどうくさい。 ただ、性能面で言うと、仕組み的に管理テーブルの行ロックを取ってしまうはずなので、OracleのSEQUENCEには全く敵わないでしょう。後は、複数テーブルに同じ番号を振りたいときも困る。 ■ 3.一列

    『OracleよりもMySQLの方が便利だと思うSQL構文比較』
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
    twainy
    twainy 2011/02/28
  • それでも私がMySQLを使いつづける理由または、Why I still use MySQL? 的ななにか。 - rkajiyama’s diary

    @tokuhiromのそれでも私が Perl5 を使いつづける理由または、Why I still use Perl5? 的な。を読んでいて、自分でもMySQL版を書いてみようと思った。使い続けるというより、「中の人として働き続ける理由」っぽい気もする。 Good Enough 環境構築がきわめて簡単で動作も安定。もちろんパフォーマンスも良い。なによりKISSの原則を保てているソフトウェアは珍しい。 GPLである ライセンスを正しく理解すれば、GPLほどエンドユーザ企業にとってすばらしいソフトウェアライセンスは無い。FUDに騙されている企業は、自分たちがカモにされていることに気付くべきだ。 デュアルライセンスである GPLはすばらしい、といってもパッケージソフトウェアベンダにとっては死活問題になりうる。なので、MySQLは対価をいただいてGPLでは無いライセンスも用意している。 MySQL

    それでも私がMySQLを使いつづける理由または、Why I still use MySQL? 的ななにか。 - rkajiyama’s diary
    twainy
    twainy 2011/02/23
  • Good night, Posterous

    Posterous Spaces is no longer available Thanks to all of my @posterous peeps. Y'all made this a crazy ride and it was an honor and pleasure working with all of y'all. Thanks to all of the users. Thanks to the academy. Nobody will read this.

  • ソーシャルゲームのためのデータベース設計

    2. 自己紹介  MySQL/Linux周りのスペシャリスト  2006年9月から2010年8月までMySQL家(MySQL/Sun/Oracle)で APAC/US圏のMySQLコンサルティングに従事  主な著書に「現場で使えるMySQL」「Linux-DBシステム構築/ 運用入門」「Javaデータアクセス実践講座」  DeNAでの主な役割  安定化/パフォーマンス/運用周りの中長期的な改善活動  L3サポート/運用/トラブルシューティング – 難度の高いMySQL周りの問題の根原因の特定と解決  多くのプロジェクト支援  社内勉強会/トレーニング – MySQLやデータベース周りのベストプラクティスを社内で共有し、 技術スキルを底上げする  技術マーケティング – 国内外のカンファレンスや、技術雑誌等

    ソーシャルゲームのためのデータベース設計
    twainy
    twainy 2011/01/17
  • 本番DBと開発DB(stg)のtable構成の差分をチェック

    MySQL用なんですけどー。 zsh限定なんですけどー。 diff =(mysql -uuser -ppass proj -e 'show create table bar\G') =(ssh db 'mysql -uuser -ppass proj -e "show create table bar\G"');こんなコマンドを打ち込めば、 6d5 < `mobile_id` varchar(255) NOT NULL default '', 13,14c12 < KEY `member_id` (`member_id`), < KEY `mobile_id_idx` (`mobile_id`) --- > KEY `member_id` (`member_id`)的な差分が見れます。 シェル組んでプロジェクトの全テーブルをチェックできるようにすりゃいいかなーってかんじです。 参考)h

    twainy
    twainy 2010/12/24
    zsh便利だなー
  • サーバ監視に超使える〜topコマンドのまとめ:phpspot開発日誌

    サーバ監視に超使える〜topコマンドのまとめ サーバを運用しているとよく使うtopコマンドですが、標準のtop以外にも色々便利なものがあるのでまとめてみました。 ボトルネックといえば、ネットワーク、ディスクIO、スワップ、CPU、メモリといったものが関連しますが、ツールで視覚化することでより分かりやすい対策がとれますね。 htop こちらも、通常のtopよりもさらに多数の情報を表示してくれるツール。 CPUやメモリの状態が視覚的にグラフで表示されていたり、複数CPUがある場合もそれぞれに利用率を表示してくれてわかりやすいです。 pstreeで表示するようなツリー+topコマンドのような表示も t を押せば切り替えられます。 公式サイト上にある128コア積んだマシンのhtop結果が面白い。 次のようにすべてグラフで表示されているため、128コアあったとしても瞬時に負荷が把握できますね。 io

  • PHP開発者のMySQLの間違いトップ10:phpspot開発日誌

    WindowsアプリのツリービューっぽいUIをWEB上で簡単実装できるjQueryプラ... 次の記事 ≫:シンプルさがいい感じの154種類のアイコンセット Top 10 MySQL Mistakes Made by PHP Developers PHP開発者のMySQLの間違いトップ10。 手慣れている人にとっては知ってることも多いかもしれませんが、初心者が役立ったり、知らない部分のカバーとしてメモとして書いてみます MyISAMを使っている デフォルトはストレージエンジンにMyISAMだけどInnoDBを使おう リカバリ可能でオンラインバックアップ機能、外部キー利用可能なInnoDBおすすめ 詳細:Open database life: MyISAMとInnoDBのどちらを使うべきか PHPMySQL関数を使っている mysql_* 関数を使わず、PDO等でストレージ変更に対応しよう

  • GitHub - chikaram/gnix-db: O/R Mapping Module for PHP 5.3 & MySQL

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - chikaram/gnix-db: O/R Mapping Module for PHP 5.3 & MySQL
  • NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現

    モバゲーで知られるDeNAは、バックエンドデータベースにNoSQLを使っていません。なぜか? それはMySQL/InnoDB 5.1の環境で秒間75万クエリという、多くのNoSQLでも実現できないような高性能を実現しているから。DeNAの松信嘉範(まつのぶよしのり)氏は、自身のブログにこんな内容のエントリ「Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server」(英語)をボストしています。 Yoshinori Matsunobu's blog: Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server 松信氏が指摘するように、大規模なネットサービスを提供している企業の多くは分散環境で

    NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現
  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
    twainy
    twainy 2009/04/01
  • なぜMySQLのサブクエリは遅いのか。

    よくMySQLはサブクエリが弱いと言われるが、これは当だろうか?半分は当で半分は嘘である。MySQLのサブクエリだってなんでもかんでも遅いわけではない。落とし穴をしっかり避け、使いどころを間違えなければサブクエリも高速に実行できるのである。今日はMySQLがどんな風にサブクエリを実行し、どのような場合に遅いのかということについて説明しよう。 EXPLAINで実行計画を調べた際に、select_typeにはクエリの種類が表示されるのだが、代表的なサブクエリには次の3つのパターンがある。 SUBQUERY DEPENDENT SUBQUERY DERIVED 結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリのカラムを参照しているサブクエリのことである。そし

    なぜMySQLのサブクエリは遅いのか。
    twainy
    twainy 2009/03/26
  • さらにMySQLを高速化する7つの方法

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

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

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

    漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法
    twainy
    twainy 2009/02/19
  • Ajaxline.com is for sale | HugeDomains

    Working with hugedomains.com was a quick and easy process. We got to speak to multiple real people located in Colorado without having to wait on hold! Our only complaint was we felt we had to overpay more than this particular domain was worth, and we weren't able to negotiate it down to a level that we felt was fair. However, payment and delivery were seamless, and within a few hours we had all of

    Ajaxline.com is for sale | HugeDomains
    twainy
    twainy 2009/02/05
  • mysqlコマンドで、テーブル名とかカラム名の補完(completion)をする方法 - (ひ)メモ

    追記: rehash(auto-rehashも含む)すると、SQL文の補完(seleでタブ打鍵とか)が効かなくなるよと、はす向かいの人に教えてもらいました。 個人的には、SQLは「mysql> help select」とかでオンラインヘルプがびょっと出るので、スキーマの補完ができるんならSQLの補完はとりあえずあきらめてもいいかなと思っています。 常々、テーブル名とか補完できるといいなーと思っていたので、ボロっときいてみたら教えてもらいました。あざーーーーっす! id:mikihoshi++ id:tokuhirom++ id:precuredaisuki++ おかげで効率が300%上がりました。(Benchmark::Stopwatchで計測) http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html#option

    mysqlコマンドで、テーブル名とかカラム名の補完(completion)をする方法 - (ひ)メモ
    twainy
    twainy 2008/01/23
  • MySQL :: MySQL 4.1 リファレンスマニュアル :: 1.4.3.2 GPL に基づく MySQL ソフトウェアの無償使用

    GPL の条件に従っている場合、GPL の下で MySQL ソフトウェアを無償で使用することができます。GPL に関する一般的な質問に対する回答などの詳細については、Free Software Foundation の一般的な FAQ(http://www.fsf.org/licenses/gpl-faq.html)を参照してください。一般に、以下のような場合に GPL を使用します。 独自のアプリケーションと GPL に基づく MySQL のソースコードの両方を製品とともに提供する場合。 商用としてディストリビューションを販売する場合でも、機能に関して MySQL システムにリンクしていない、または MySQL システムに依存していない他のプログラムとバンドルされた MySQL のソースコードを提供する場合。これは、GPL ライセンスでは単に集約と呼ばれる。 MySQL システムのいずれ

  • 詳解 MySQL

    MySQLソースは公に利用できるという意味ではオープンなものだが、そのソースを理解できなければ質的にはそれはクローズなものになる。」(書「はじめに」より) しかし、優秀なプログラマたちのアイデアと努力の結晶であるソースコードを読み解くには、彼らのインスピレーションと努力の痕跡を知る必要がある。書は、コードに秘められたプログラマたちのアイデアに触れながら、MySQLのソースコードを読み解くための指針を提供する。MySQL内部の詳細に踏み込むための手引書である。 はじめに 1章 MySQL歴史とアーキテクチャ 1.1 MySQL歴史 1.2 MySQLアーキテクチャ 1.2.1 コアモジュール 1.2.2 各コアモジュールの連携 1.2.3 各コアモジュールの詳細 2章 MySQLソースコード利用の基 2.1 Unixシェル 2.2 BitKeeper 2.3 BitKeeper

    詳解 MySQL
  • CodeZine:DeNAの人気サイトに学ぶ LAMPによるWeb-DBシステム構築/運用の極意(前編)(モバオク, モバゲー)

    シングルマスタの非同期レプリケーション機能では、マスタサーバーが1台に限定され、マスタからスレーブへの複製は非同期で行なわれるため遅延が生じ、短時間のスケールで見ると全スレーブとの同期が保証されない。しかし、その反面スレーブの台数を増加させていってもマスタサーバーの更新負荷は大きくならず、スケーラビリティを維持できるという利点がある。DeNAによる運用実績でも、マスタとスレーブ間の遅延は通常数秒程度以内に収まる。 このレプリケーションを利用する場合、アプリケーション側ではデータ更新時にはマスタサーバーへ接続し、データ参照のみを行なう場合はスレーブサーバーへ接続するように作成する必要がある。 Webや携帯電話向けサービスの場合、小さな規模で始めてユーザー規模、データ規模、ページビュー数を徐々に増加させていくことが多い。小さな規模のためDBの負荷分散が不要な場合でも、マスタサーバー1台、スレー

    twainy
    twainy 2007/08/02
    mydns,mysqlのレプリケーション