タグ

DBに関するkamatama_41のブックマーク (23)

  • ALTER TABLEを上手に使いこなそう。

    テーブル定義を変更したい。インデックスが壊れてしまったので再作成したい。そんな場合はALTER TABLEを使う。ALTER TABLEはテーブル定義を変更するお馴染みのコマンドであるが、その挙動は意外と知られていない。(エキスパートとおぼしき方々からも度々質問を受ける。)そんなわけで、今日はALTER TABLEについて解説しようと思う。 まず結論から言うと、なんとMySQLのALTER TABLEはテーブルのデータを全てコピーし直すのである。なんて無駄なことを!?と思うかも知れないが、テーブル定義(スキーマ)の変更を動的に行うには、ストレージエンジンによるサポートが必要であり、動的なスキーマ変更をサポートしているストレージエンジンはまだ少ないのである。(動的スキーマ変更をサポートしているのはMySQL Clusterぐらいだ。しかも追加だけ。)デフォルトで利用出来るMyISAMはInn

    ALTER TABLEを上手に使いこなそう。
  • O/Rマッパーによるトラブルを未然に防ぐ

    2. copyright © 2014 kuwata-lab.com all rights reserved まえがき 現在、アプリケーション開発の現場では O/R Mapper (ORM) が普及しています。今後 も ORM を使った開発は、増えることはあっても減ることはないでしょう。 しかし ORM は、アプリケーション開発者にとっては便利でも、DB 管理者 (DBA) か らみたらトラブルの種でもあります。それが特にパフォーマンスに関する問題であるこ とが多いため、開発者と DBA が対立することも珍しくありません。 とはいえ、ORM による問題はすでに解決策が用意されている場合があります。当の 問題は、すでに存在する解決策があまり知られていないことではないでしょうか。 そこで発表では、ORM によってどのような問題が起こりやすいか、どう解決・予防 すればいいか、そして ORM

    O/Rマッパーによるトラブルを未然に防ぐ
  • MySQL 今更ながらonline-schema-changeについて | Ore no homepage

    そういえば先日はハロウィンだったね。んで、今日スタバに行ってみたら早くもクリスマス仕様。残念ながら年末の予定は無え。 そんなこんなでオンラインスキーマチェンジを番のオペレーションで使い始めたのでそのメモ。 0. online-schema-change オンラインスキーマチェンジは、percona社が出しているpercona-toolkitに梱包されている。その他有用なツールも入っているのでお世話になっている人も多いだろう。で、オンラインスキーマチェンジはその名のとおり、スキーマの変更、alter文をブロックなしで実行してくれるという代物。 私事なんだけど、今までは「ちょっと更新をブロックしちゃうけどアクセスの少ない時間帯にオンラインでalterを流す」みたいな運用をしてた。実行内容にもよるけどalter tableは意外と早いので、「更新をブロックされる時間がSLA的に許可できるならO

  • 無停止でALTERできるPercona-Toolkitのonline-schema-change - FAT47の底辺インフラ議事録

    MySQL5.5をまだまだ絶賛利用中な私です。 サービスを運用しているとINDEX追加やカラム追加を行いたい要望が多々発生します。 それも無停止で。 MySQL5.6からは無停止でINDEX追加やカラム追加ができるオンラインDDLが実装されました。 カラム追加はまだ色々制約があるみたいですが…。 http://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html pt-online-schema-change MySQL5.5でも似たようなことをやりたいので、 有名な「Percona-Toolkit」に同梱されているpt-online-schema-changeを利用しています。 http://www.percona.com/software/percona-toolkit 通常はロックが掛かってしまうALTER

    無停止でALTERできるPercona-Toolkitのonline-schema-change - FAT47の底辺インフラ議事録
  • 冬の日2014〜ioDriveが壊れた日〜 - FAT47の底辺インフラ議事録

    ある日 ioDriveを積んでるMySQLスレーブサーバが突然の死。 というか、レプリケーションが止まっていました。 サービスから参照されていないDBではあったので、 特に死んでいても問題にはなりませんでした。 今回つかっていたのはioDrive Duoです。 /var/log/messages確認 とりあえずシステムのログを確認してみると、 Jan 27 05:39:36 hoge-dbs kernel: fioinf HP 640GB MLC PCIe ioDrive Duo for ProLiant Servers 0000:09:00.0: groomer read had error -1024 Jan 27 05:39:36 hoge-dbs kernel: fioerr HP 640GB MLC PCIe ioDrive Duo for ProLiant Servers 00

    冬の日2014〜ioDriveが壊れた日〜 - FAT47の底辺インフラ議事録
  • イミュータブルデータモデル(入門編)

    6. Step1 エンティティの抽出 発送担当者が受注リストをもとに、商品の在庫を確認し、在庫が あれば商品を発送する。 ① 要求仕様の「動詞」を抜き出しエンティティとする。 ② ①に関わる「名詞」を抜き出しエンティティとする。 ③ エンティティ間の関連に線を引く ④ 属性や候補キーも分かる範囲で書いておきます。 間違い! この段階で実装をプロパティファイルにするとか、Enum にするとか決め打ちでエンティティとして表さないのはや めましょう。 まず、はじめにエンティティを抽出します。

    イミュータブルデータモデル(入門編)
  • 開発環境のデータをできるだけ本番に近づける - クックパッド開発者ブログ

    こんにちは。技術部の吉川です。 今回はクックパッドの開発環境構成、特に開発用データベースの構成についてご紹介します。 開発環境の構成 クックパッドのシステム環境は以下のようなフェイズに分かれています。 ※ これはcookpad.comの構成で、サブシステムや個別のサービスはその規模や特性に応じて構成が異なります。 development 開発者が実際に開発を行う環境です。クックパッドでは仮想環境は用いず、手元のマシンでRailsアプリケーションを動かして開発を行っています。 データベースはローカルではなく、開発者全体で共通の開発用データベースに接続しています。 test 手元でテストを実行する場合は、ローカルマシンのデータベースを利用します。CI(rrrspec)などの場合も同様で、テスト実行サーバーのデータベースが利用されます。 staging stagingといえば準番環境として、

    開発環境のデータをできるだけ本番に近づける - クックパッド開発者ブログ
  • Twitterのキャッシュを支えるRedis - ワザノバ | wazanova

    https://www.youtube.com/watch?v=rP9EKvWt0zo 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 TwitterのYao Yuが、大規模サービスのキャッシュにおいてRedisを活用する取組みについて紹介しています。 1) Redisを採用している理由 キャッシュだけで、ストレージとしては利用していない。 主なところでは、Twitterのタイムラインで利用している。ホーム画面であれ、ユーザ画面であれ、タイムラインはTweetのインデックスなので、key/valueストア型のRedisを利用するケースとして最適。 以前はmemcachedを使っていたが、問題になったのは、タイムラインでおきるread/writeは、(ユーザが閲覧している範囲に追加反映するということなの

  • 『MySQL初心者に贈るインデックスチューニングのポイントまとめ2014』

    サイバーエージェント公式ブログをご覧の皆さんこんばんは、インフラ&コアテク部の須藤(@strsk)です。普段はAmebaのソーシャルゲーム全般のインフラを見つつ、日語ラップの啓蒙をしながら弊社社員を素材にコラ画像をつくったりしています。好きなAAは麻呂です。 はい、というわけで今回はMySQLインデックスチューニングの基的な流れについてまとめてみました。 ソーシャルゲームは更新も参照もめちゃくちゃ多いです。数秒のレプリケーション遅延も致命的なので適切なテーブル、クエリとインデックス設計が重要です。(何でもそうですけど)インデックスが多くなると更新コストなどが懸念されますが、インデックスが正しく使われていないクエリを放置している方が悪です。そんなこんなで、割と例も偏ったりしてるかもしれませんがあしからず。 前提としてはInnoDBを想定しています。MyISAMはほとんど使っていません。

    『MySQL初心者に贈るインデックスチューニングのポイントまとめ2014』
  • 社内勉強会でMySQLの運用について喋ってきた | Ore no homepage

    すでにMySQLの運用テクニックは多くのTipsが出回っているので、考え方を中心に喋ってきた。主に、負荷が高い、レプリが遅延する、などについて。 資料 文字多めの資料になっている。オンプレでの運用が多いので、物理レイヤーの話も少しある。自己紹介だけ中途半端に英語。「資料を英語で書こうと思ったけど諦めたので、この後は全部日語です」で、とりあえず一笑い取れた(失笑)。 こんな話をした↓ 負荷対策 SQLのチューニングはちゃんとしましょう。 ハードウェアリソースの負荷の箇所によって適切な対応をしましょう。 MySQLの設定は勘所を抑えて適切にしましょう。ただし、単なる数字いじりには意味はない。 ファイルシステムやそのオプションは、高トラフィック時に差が見えてくるので、留意はしておきましょう。 レプリケーションの遅延 資料の通りだよ。 MySQLは非同期(準同期)レプリケーションなので遅延は避け

  • HBaseを用いたグラフDB「Hornet」の設計と運用

    2. 2 株式会社サイバーエージェント 自己紹介 •  鈴木俊裕(すずき  としひろ) •  ソフトウェアエンジニア •  Ameba  Technology  Laboratory •  Hadoopログ解析基盤 •  HBaseを用いた基盤システム •  最近の興味:Scala,  Go,  NewSQL •  Twitter  @brfrn169 3. 3 株式会社サイバーエージェント 自己紹介 •  梅田永介(うめだ  えいすけ) •  ソフトウェアエンジニア •  Ameba  Technology  Laboratory •  HBaseを用いた基盤システム •  趣味料理

    HBaseを用いたグラフDB「Hornet」の設計と運用
  • Redis Sentinelを運用してみたお話 | GMOメディア エンジニアブログ

    こんにちは、宇津井です。 弊社ではゲソてんというゲームプラットフォームを運営しております。ゲソてんではサービスリリース当初から主にキャッシュ的な役割でRedisを導入していました。つい先日の事ですが訳あってRedis 2.6からサポートされたRedis Sentinelを採用しました。今回は、採用に至った経緯をご紹介します。 簡単なシステム構成 パフォーマンスは良いし、Memcachedには無い便利な機能を提供するRedisですが約一年間運用していくつかの問題が出てきました。 Redisサーバーが突然高負荷に陥るするとWebサーバーも高負荷に陥るRedisのReplicationは張ってるけどアプリケーション側でRedis Slaveへフェイルオーバーしない(MySQLを直接参照する)Redis落ちると恐らくMySQLサーバーが耐えられない(落ちた事無いけど)という事で対策を行ってきました

  • tcpdumpとmk-query-digestでMySQLのクエリ解析 - mikedaの日記

    Maatkitのmk-query-digestで定期的なMySQLのクエリ解析をやってみたのでメモ ※今はPERCONA Toolkitになっちゃったみたいですがそっちはまだ試してません! 参考にしたサイト 同じような記事はいっぱいあるので細かいところは書きません。 Maatkitについてはこのあたり インフラ系エンジニア勉強会 "hbstudy"でMaatKitについて発表してきました maatkitを一通り使ってみたメモ Maatkitでslow logを解析 tcpdumpとmk-query-digestの組合せについてはこのあたり Maatkittcpdumpべられる上,memcachedも咀嚼出来る tcpdump & xtrabackup @ MySQL Casual Talks #1 あとはperldoc mk-query-digest 解析結果のこと DBに結果を突っ

    tcpdumpとmk-query-digestでMySQLのクエリ解析 - mikedaの日記
  • HOWS「ISSEI(イッセイ)」

    ●既存のDB技術と一線を画すデータ検索技術を生み出す ●ゼロベースで発想しOSの基機能に着目 ●ストップウオッチ片手に高速化を追求 ソフト開発ベンチャーのHOWSが、これまでにないデータ管理・検索技術「ISSEI」を開発した。HOWSは現在、ISSEIを次世代Web基盤技術として特許を出願している。 「ユーザー企業がデータを有効活用するためには、既存のリレーショナルデータベース(RDB)と一線を画す技術を編み出すほかないと考えた」。HOWSのCTO(最高技術責任者)である庄司渉副社長は、ISSEIを開発した思いを語る。 ユーザー企業の多くは現在、社内システムを整備し、テキストや画像、音声などさまざまな種類のデータを大量に蓄積している。その一方で「データを業務に有効活用できていない」と嘆くCIO(最高情報責任者)が多いのも事実だ。 その理由について庄司副社長は、「現在主流のRDBが限界に近

    HOWS「ISSEI(イッセイ)」
    kamatama_41
    kamatama_41 2013/11/30
    昔の記事だけど腹筋崩壊不可避
  • コンシューマサービスの運用に耐えるDB性能設計とは - レベルエンター山本大のブログ

    JOIN 禁止の話に、いまだに絡んでくれる人がいた。 ■「艦これ」から、ソーシャル系のサーバ構成を考える - SQLer 生島勘富 の日記 僕が以前に書いたテーマに関するエントリは以下の3つ。 ■信じられないDB文化Join禁止」に「固定長DB」、、でも、合うんです。大規模コンシューマ向けサービスのRDB設 ■信じられないDB文化「固定長DB」でもあうんです。大規模コンシューマ向けサービスのRDB設計 ■ホント信じられないDB文化だけど、統計情報固定化はマジでアリ ちょうど折よく、ウチの会社のオラクル女子が書いたエントリの続きも公開されました。 ■一緒にまなぼ!「hiromi と楽しむOracleパフォーマンスチューニング!」【Vol.2 Statspackを見てみよう】 ということで僕の中でDB熱が盛り上がってきたので返答的なエントリを書きます。 「とりあえずメモリだけ気にしておけ」

  • 『cassandra運用監視小ネタ集』

    はじめまして。サービスインフラというチームに所属している@oranieと申します。前回の弊社 佐野からCassandra芸人による他のネタも・・・という話があったのでこれ幸いとCassandraネタでお茶を濁そうと思っています。そもそも他にもネタを持っているエンジニアがいる中で僕に執筆依頼を出す時点で、なんて節操の無い寛容な人達だとビックリしました。多分ダーツかなんかで決めたんだと思います。 入社以来、なぜか弊社でデファクトとして使われているデータストアのMySQLにもほとんど触らず、ひたすらCassandra運用とか他には仕事チャット上で一人だけ勝手に盛り上あがって麻呂のAAを貼りつけたり等の社内ピエロ雑用をやっています。おかげさまでエキサイティングな日々を毎日送る事が出来た為、酒の量が一時期増えたのと多少は小ネタを覚えたのでまだ運用していない方に少しでも運用・監視周りのお役に立てれば幸

    『cassandra運用監視小ネタ集』
    kamatama_41
    kamatama_41 2013/05/10
    監視アプリはpythonかperl
  • 【チラ裏】あなたは本当にそのデータストアが好きで使うんですか? - oranie's blog

    チラシの裏的な雑記です。 サービスに新しいデータストアを選ぶ際にこの辺を情熱を持って説明してくれる人が好き、という話です。 そのデータストアを使う理由はなんですか?みんなが使い慣れている物から変える理由は「有名な会社が使っていて^^」「他のチームが使っていて^^」とかではなくて、既存の物では解決出来ない問題を解決するアプローチになっていますか? もし単純にキャッチアップしておきたいというレベルなら、あなたの趣味で作るシステムで運用する、では欲求を満たせませんか? 同じようなプロダクトは他にもあると思いますが、そのプロダクトで無ければいけない理由はなんですか? まだ新しいプロダクトだった場合、あなたはそのコードを読んで、バグを報告して、必要であればパッチを書く覚悟を持っていますか? あなたはチーム内でそのプロダクトの第一人者になる、という覚悟がありますか?他のメンバーへの啓蒙や情報共有を率先

    【チラ裏】あなたは本当にそのデータストアが好きで使うんですか? - oranie's blog
    kamatama_41
    kamatama_41 2013/04/25
    ミドルウェア全般に同じこといえるよなー
  • DBの世界に起こる変革 | エンタープライズエンジニアの独り言

    エンタープライズシステムのエンジニアをやって10年以上。思うところを書いていきます。その他趣味を少々。。。 DBの世界に起きた大きな波 現在、どの製品を使ったとしてもRDBの性能問題は必ずといっていいほど発生する。理由は簡単で、CPU、ネットワークが高速化(CPUはマルチコア化、ネットワークは10G-Ethernetの一般化やInfiniBandなど)するのにディスク(ストレージ)が高速化に追いついていないからだ。その差を埋める役割として、RDBが担っているケースが多く、性能問題になるケースが散見される。 だが、そういう時代の流れに対して大きな変革が起きようとしている。SSDはかなりコモディティ化してきたので言うに及ばずといった感じだが、個人的には速いもののディスクの置き換えにすぎないと思っている。つまり、SSDは速いがDBのアーキテクチャに大きな変革をもたらすものではない。が、ここにきて

  • PofEAA's Wiki - DataMapper

    原文: http://www.martinfowler.com/eaaCatalog/dataMapper.html Mapper (473) レイヤは、オブジェクトとデータベース間でデータを移動させる。データは、オブジェクト、データベース、およびMapperから独立させる。 解説の全文は『PofEAA』 165 ページを参照。 オブジェクトとリレーショナルデータベースは、 異なるメカニズムでデータを構成している。 オブジェクトの多くの部分(コレクションや継承など)は、 リレーショナルデータベースでは表すことができない。 多くのビジネスロジックを伴ったオブジェクトモデルを構築する場合、 データおよびデータに付随する振る舞いをうまくまとめるために、 このメカニズムを使うことは非常に大切である。 これによりスキーマが異なったままとなる。 つまり、オブジェクトスキーマとリレーショナルスキーマは

  • タグ機能を実現するための便利なデータベース設計を3つ紹介 | colori

    AND検索 「CSS+HTML+JavaScript」で検索する場合は以下のようにします。 SELECT * FROM `delicious` WHERE tags LIKE "%CSS%" AND tags LIKE "%HTML%" AND tags LIKE "%JavaScript%" OR検索 「CSS|HTML|JavaScript」で検索する場合は以下のようにします。 SELECT * FROM `delicious` WHERE tags LIKE "%CSS%" OR tags LIKE "%HTML%" OR tags LIKE "%JavaScript%" 引き算検索 「CSS+HTML-JavaScript」で検索する場合は以下のようにします。 SELECT * FROM `delicious` WHERE tags LIKE "%CSS%" AND tags LI