タグ

MySQLに関するsilverscytheのブックマーク (17)

  • データベースの内部動作を知る

    SQLのプログラミングは奥が深い。特にパフォーマンスの観点から、そう言えるだろう。 みなさんご承知の通り、同じ結果を出すプログラムでも、SQLの書き方次第で処理時間に何倍もの差が生じ得る。効率の悪いSQLを書いてしまう原因は、多くの場合、リレーショナルデータベースの内部動作やアプリケーションに関する理解不足である。両者をよく知った上で最適なSQLを書けるようになることは、システムエンジニアとしての重要なスキルの一つである。 特集『基礎から理解するデータベースのしくみ』では、リレーショナルデータベースの内部動作について、基的な部分を分かりやすく解説している。SQLプログラミングに役立つことはもちろん、SQLチューニングやデータベース設計のための基礎知識としても不可欠だ。 イントロダクション ブラックボックスのままでいいの? Part 1:SQL文はどのように実行されるのか SQL実行までの

    データベースの内部動作を知る
  • 大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック

    OSC 2011 Hokkaidoの発表で使用したスライド資料です。 弊社が「ブラウザ三国志」や「英雄クエスト」といったゲームを、PHPMySQLで構築してきた上で、身につけたノウハウや、注意すべき箇所、指針などをまとめた資料となっています。

    大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
  • MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記

    MySQLでテーブルへのカラム追加、インデックス追加やテーブルの再編成などを行うと、その間テーブルに共有ロックがかかってしまいます。そのためこれらのメンテナンス処理は、通常利用者の少ない深夜早朝帯にサービスを止めて実施する必要があります。日はそれを無停止、オンラインのままでできないかという話題です。 基的なアイデア メンテナンス対象の元テーブルをコピーして、作業用の仮テーブルを作ります 仮テーブルに対して、カラム追加などの変更を加えます その間、元テーブルに対して行われる更新処理について差分を記録しておきます 仮テーブルの変更が終わったら、記録しておいた差分データを仮テーブルに反映します 差分データの反映が終わったら、元テーブルと仮テーブルを入れ替えます これと似たようなことを考えた方は結構いらっしゃるのではないでしょうか。ただ、言うは易し、行うは難しです。整合性がきちんと取れるかどう

    MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記
  • Twitter、MySQLデータベースからCassandraに移行

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます TwitterMySQLデータベースからCassandraに移行する。同社エンジニアRyan King氏が米国時間2月23日、MyNoSQLのインタビューに応じ、決定に至るまでに検討した内容などを明らかにした。記事によると、同社はクラスタ化したMySQLサーバとメモリキャッシュシステムを運用してきたが、データ量の拡大に伴い、運用管理にあたる人件費の拡大に悩まされるようになってきたという。そのため、高可用性を保ちながら、成長に伴う作業を自動化する方法を模索した。

    Twitter、MySQLデータベースからCassandraに移行
  • MySQL InnoDBだけで全文検索 - SH2の日記

    実験エントリです。 予習してみる 「転置インデックス」というキーワードで検索して、しばらく勉強してみます。 転置インデックス - Wikipedia mixi Engineers’ Blog » 転置インデックスを実装しよう ASCII.jp:悟空、秘剣「転置インデックス」を手に入れる |Googleはなぜ的確に探せるのか? [を] 転置インデックスによる検索システムを作ってみよう! 転置インデックスで学ぶ検索エンジンの中身アプリ - 睡眠不足?! うーんなるほど。分かったような分からないような。 作ってみる とりあえず、Twitter4Jを使ってこんなデータを用意しました。ちなみに人選は漢(オトコ)のコンピュータ道: MySQLerのTwitterアカウントまとめ。を参考にさせていただきました。 5707049458,2009-11-14 20:28:34,sakaik,@hbstudy

    MySQL InnoDBだけで全文検索 - SH2の日記
  • 「モバゲータウン」のつくりかた − TechTargetジャパン システム開発

    低価格なPCサーバ1000台で1日6億PVをさばく 「モバゲータウン」(以下、モバゲー)といえば、誰しも「中高生に絶大な人気を誇る携帯サイト」という認識ぐらいはあるだろう。ゲーム、ニュースに小説占いなどのコンテンツ、アバター(仮想キャラクター)を装ったSNSコミュニケーション、ディー・エヌ・エー(以下、DeNA)が運営するショッピングやオークションサイトなどが利用できる、携帯電話向けの総合ポータルサイトだ。 DeNAのポータル事業部 システム部 部長、武部氏 モバゲーは2009年5月現在で会員数1419万人、月間ページビュー(PV)は約183億を誇る。つまり、1日当たり6億PVである。さぞかし大掛かりなシステムを運用しているのだろうと想像してしまうが、意外にそうではない。 DeNAポータル事業部 システム部の部長、武部雄一氏は「モバゲーのシステムは、比較的低価格なPCサーバ機1000

    「モバゲータウン」のつくりかた − TechTargetジャパン システム開発
  • [解説]Sun買収により,3年越しでMySQLを手に入れたOracle

    2009年4月20日(現地時間),米Oracleが米Sun Microsystemsを買収することで両社が合意した(関連記事)。買収により,データベース専用機という形でハードウエアに進出(関連記事)していたOracleはSunのサーバーとストレージ,約4万7000社というユーザーベースを手にする。 さらに,OracleはSunの持つGlassFishなどのミドルウエア群も手にすることになる。中でも注目されているのが,2008年にSunが買収したMySQLである(関連記事)。データベース最大手のOracleにとって,オープンソースのMySQLは事実上最大の競合製品であるからだ。 Oracleは2006年にMySQLの買収に失敗 Oracleは3年前の2006年にMySQLの買収を試みて失敗している(関連記事)。米メディアの報道によればMySQLOracleの買収提案を拒否。OracleはM

    [解説]Sun買収により,3年越しでMySQLを手に入れたOracle
  • 小野マトペの業務日誌(アニメ制作してない篇) - MySQLで50個のIDからレコードを取得したいときに、プレースホルダで50回叩くのとINで一回で取るの、どっちが速いか。

    今日はふぁぼったーのフロントエンドDB処理まわりをリファクタリングしました。この辺りも、もう1年半も開発・拡張を続けている部分なのでかなり汚くなっており、今後のためにできるだけソースを短くし、保守性の高いコードに書き直すなどの作業です。 そのなかで、以前から気になっていた点があったので、せっかくなので検証してみました。 前提 ふぁぼったーでは、発言をデータベースから取得する際、最初に発言とそのユーザーをSTATUSテーブルとUSERテーブルからSELECTして、そこで得た発言のIDを用いて、右下に出る各発言のふぁぼりユーザーをFAVORITEテーブルとUSERテーブルから別途SELECTしています。二つに分けたのはその方が速かったからですが、今回検証したのは、後半のふぁぼりユーザー取得部分の書き方です。 FAVORITEテーブルから複数の既知のステータスIDのレコードをSELECTしてき

    小野マトペの業務日誌(アニメ制作してない篇) - MySQLで50個のIDからレコードを取得したいときに、プレースホルダで50回叩くのとINで一回で取るの、どっちが速いか。
  • 《PHP関連》ユーザー認証システムを作成しており登録システムに最近入りかかりました。しかしメールアドレスをチェックす.. - 人力検索はてな

    PHP関連》有力な回答者の方には高ポイントを差し上げます。 ユーザー認証システムを作成しており登録システムに最近入りかかりました。しかしメールアドレスをチェックするような機能がなかなかできません。 具体的にはIDやパスワード、メールアドレスを入力してもらいます。その後メールアドレス先に確認メールを送り、メールにあるランダムなURL(register_check.php?id=237uhuiedy78y7vbyc3 のようなもの)をクリックすることによって初めてIDが有効になるシステムを作り上げたいと思っています。 どのような感じで構成すればいいのでしょうか? >>>実際にソースなどを書いていただくと助かります。<<< (ユーザー情報等はデータベース(Mysql)にて管理しています。)

  • MySQLのEXPLAINを徹底解説!!

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

    MySQLのEXPLAINを徹底解説!!
  • データベースの基礎を理解しよう! プログラミング未経験から始めるPHP入門

    はじめに 連載では、PHPまたはプログラミング初心者の方を対象に、PHPを用いたWebアプリケーションの作成方法を説明していきます。今回は、データベースとSQLに関して、「おすすめレストラン一覧を閲覧できるWebサイトを制作する場合」を例にして、説明をしていきます。 対象読者 プログラミングが初めてでこれから学習する予定の方 プログラミングの経験はあるがPHPを初めて学習する方 この記事の内容 はじめに 対象読者 動作確認環境 データベースとは何か・・・データベースはどんな役割? データベース操作の基礎・・・データベース言語「SQL」とは SQL基礎:テーブルの作成・・・CREATE文を使ってみましょう SQL基礎:レコード追加・・・INSERT文を使ってみましょう SQL基礎:レコード検索・・・SELECT文を使ってみましょう SQL基礎:レコード更新・・・UPDATE文を使ってみまし

    データベースの基礎を理解しよう! プログラミング未経験から始めるPHP入門
    silverscythe
    silverscythe 2009/03/31
    ちょうどこういう記事が必要だった!
  • Yahoo!オークションでのMySQL 冗長化技術

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちはオークション事業部プラットホーム技術のチャックです。 オークションでは一部サービスに RDBMSMySQL を使ってサービスをご提供させていただいております。 オークションでは多くのお客様よりアクセスを頂いておりますので、大量の更新、参照の処理速度に優れた MySQL を選択し、お客様にストレスなくサービスをご利用いただけるよう 日々業務に取り組まさせていただいております。 しかし、精密機器には故障がつきもので、サービス運用の観点からは 「機器が故障するのはしかたない、しかしそれをいかに早く復旧させるか」 といったことを念頭に入れております。 実際には、障害が起こってから復旧させるのではなく、障害が発生した場合に

    Yahoo!オークションでのMySQL 冗長化技術
  • なぜMySQLのサブクエリは遅いのか。

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

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

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

    さらにMySQLを高速化する7つの方法
  • HowFriendFeedUsesMySqlToStoreSchemaLessData - FriendFeed では MySQL を使いどのようにスキーマレスのデータを保存しているのか

    HowFriendFeedUsesMySqlToStoreSchemaLessData - FriendFeed では MySQL を使いどのようにスキーマレスのデータを保存しているのか 目次 この記事について FriendFeed? では MySQL を使いどのようにスキーマレスのデータを保存しているのか 背景 概観 詳細 一貫性と原子性 性能 FriendFeed? では MySQL を使いどのようにスキーマレスのデータを保存しているのか この記事について "How FriendFeed? uses MySQL to store schema-less data" の日語訳です http://bret.appspot.com/entry/how-friendfeed-uses-mysql CC 2.5 でライセンスされています: http://creativecommons.org/

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法

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

    漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法
  • 1