タグ

dbに関するtoritori0318のブックマーク (31)

  • 本番環境でSQLをなるべく安全に実行するパターン - kawasima

    起こりうる事故 ロックにより他のオンライン中のサービスに影響を与える。 トランザクション設定ミスにより途中の状態でコミットされる スロークエリ発行により、全体をスローダウンさせる。 統計情報が取得できておらず、SQL実行時間が長くなったりデータベースのリソースを喰ってしまったりする。 接続先を誤認して、番環境でDELETE やTRUNCATE、DROP TABLEなどを発行してしまう ターミナルの操作ミスによって、クリップボードから誤ったSQLなどを発行してしまう。 パターン リハーサル コンテキスト 番一発勝負では、不測の事態に陥ることもあるため、事前にリハーサルを行なって安全性を確認しておきたい。 フォース 番相当の環境を用意できる。 マスクして持ってくることが定められたセキュリティポリシーに反していない。 ソリューション 番相当のデータをテスト環境やステージング環境に構築し、

    本番環境でSQLをなるべく安全に実行するパターン - kawasima
  • 1000万件オーバーのレコードのデータをカジュアルに扱うための心構え - joker1007’s diary

    自分が所属している会社のメンバーの教育用資料として、それなりの規模のデータを扱う時に前提として意識しておかなければいけないことをざっくりまとめたので、弊社特有の話は除外して公開用に整理してみました。 大規模データ処理、分散処理に慣れている人にとっては今更改めて言うことじゃないだろ、みたいな話ばかりだと思いますが、急激にデータスケールが増大してしまったりすると環境に開発者の意識が追い付かないこともあるかと思います。 そういったケースで参考にできるかもしれません。 弊社は基的にAWSによって運用されているので、AWSを前提にした様なキーワードやサービス名が出てきます。後、句読点があったり無かったりしますが、ご容赦ください。 追記: 社内用の資料の編集なのでかなりハイコンテキストな内容だから誤解するかもしれませんが、これらはそもそもRDBの話ではありません。(関係無くは無いけど) 1000万オ

    1000万件オーバーのレコードのデータをカジュアルに扱うための心構え - joker1007’s diary
  • データベース設計の際に気をつけていること - 食べチョク開発者ブログ

    皆さんこんにちは、エンジニアの西尾です。 新しい機能・サービスを開発する際、私は特にデータベース設計に気をつかいます。 データベースはシステムの土台です。 土台が不安定だと、その上に積み上げていくアプリケーションコードがいびつなものになり、つらい思いをします。 また、一度動き出してしまったシステムのデータベース設計を変えるのは、容易なことではありません。 データベース設計には”これだ!”という正解はないと思っています。 サービスの特徴、システムの性質、toB向け/toC向け、Readが多い・少ない、Writeが多い・少ない。 その他もろもろの背景により、データベース設計の仕方も変わってきます。 このテーブルは正規化していないから駄目だ、この設計はいわゆるポリモーフィック関連だから使ってはいけない、などということはありません。 アンチパターンと呼ばれるものも時と場合によっては正解になります。

    データベース設計の際に気をつけていること - 食べチョク開発者ブログ
  • DBリファクタリングの勘所と所感 - そーだいなるらくがき帳

    表題についてそーだいなる見解を書き残します。 今年の夏に id:koemu さんにbuilderconの懇親会で下記のような話をいただいていました。 懇親会で、DB側ばかりでなくプログラム側でも適切なドメインモデルの設計ができていれば、リファクタリング時の影響範囲がさらに小さくできるのでは?という話をしたところ、この辺りはアンサーブログを書いてくれるかもしれないってことなので期待しています!!! www.koemu.com 忘れてないんですよ!しっかり覚えています。 結論 仰る通りだと思うし、適切なドメインモデルはRDBに限らずデータストア層のリファクタリングの負担を大きく減らすと思います。 ここから先は僕なりの考え方を書きます。 実は似たような話を PHPの現場 っていうポッドキャストでも触れています。 php-genba.shin1x1.com システムの柔軟性 勿論、コードの綺麗さや

    DBリファクタリングの勘所と所感 - そーだいなるらくがき帳
  • Amazon Auroraの先進性を誰も解説してくれないから解説する - Qiita

    TL;DR; Amazon AuroraはIn-Memory DBでもなくDisk-Oriented DBでもなく、In-KVS DBとでも呼ぶべき新地平に立っている。 その斬新さたるやマスターのメインメモリはキャッシュでありながらWrite-BackでもなくWrite-Throughでもないという驚天動地。 ついでに従来のチェックポイント処理も不要になったのでスループットも向上した。 詳細が気になる人はこの記事をチェキ! Amazon AuroraAWSの中で利用可能なマネージド(=運用をAWSが面倒見てくれる)なデータベースサービス。 ユーザーからはただのMySQL、もしくはPostgreSQLとして扱う事ができるのでそれらに依存する既存のアプリケーション資産をそのまま利用する事ができて、落ちたら再起動したりセキュリティパッチをダウンタイムなしで(!?)適用したりなどなどセールストー

    Amazon Auroraの先進性を誰も解説してくれないから解説する - Qiita
  • 時系列データベースという概念をクラウドの技で再構築する - ゆううきブログ

    サーバ監視サービスMackerelにおいて開発中の、高解像度・長期間のサーバメトリック収集を実現するための新しい時系列データベースDiamondを紹介します。具体的には、Amazon ElastiCache、Amazon DynamoDBAmazon S3を組み合わせ、Amazon Kinesis StreamsとAWS Lambdaによりコンポーネント間を接続した、階層構造のデータストアアーキテクチャの設計と実装を解説します。 2018/06/05 追記: この記事の内容をWSA研#2でより一般的なアーキテクチャレベルでの貢献として書き直しました。 サーバレス時代におけるヘテロジニアス時系列データベースアーキテクチャ - ゆううきブログ はじめに 先日開催されたAWS Summit Tokyo 2017にて、「時系列データベースという概念をクラウドの技で再構築する」というタイトルで登壇

    時系列データベースという概念をクラウドの技で再構築する - ゆううきブログ
    toritori0318
    toritori0318 2017/06/07
    素晴らしい
  • このRDBについて私は驚くべき闇を見つけたがそこを発表するにはネットは怖すぎる

    YAP(achimon)C::Asia Hachioji 2016midの資料です。

    このRDBについて私は驚くべき闇を見つけたがそこを発表するにはネットは怖すぎる
  • ソーシャルゲームでDB水平分散 #mdb_casual

    2014/11/10に開催されたRails複数DB Casual Talksでの発表資料になります。

    ソーシャルゲームでDB水平分散 #mdb_casual
  • @nippondanji 氏の「データベース設計徹底指南!!」は神プレゼン!脅威の主義主張の一貫性保証は DB エンジニアの鏡だった件! - #garagekidztweetz

    ツイート今日は、第 1 回のSQL アンチパターンの回から良コンテンツを提供しまくりなエンバカデロ・テクノロジーズさん主催の第 3 回 DB エンジニアのための勉強会に参加してきました。 今回は 漢(オトコ)のコンピュータ道で有名な漢の中の漢、 @nippondanji 氏がデータベース設計を徹底指南してくれるということで、元々 DB エンジニアがバックグランドのわたしとしてはいかないわけにはいかんだろう、と喜び勇んでいってきました! 内容はというと下記の概要をカバーする内容でした。 リレーショナルデータベース(以下RDB)は登場してからかなりの時間が経っています。その名が示すように、RDBはリレーショナルモデルをベースに考案されたソフトウェアです。しかしながら、未だに現場ではRDBが使いこなされているとは言いがたく、リレーショナルモデルへの理解も進まず、誤った常識が跋扈しているのが現状で

    @nippondanji 氏の「データベース設計徹底指南!!」は神プレゼン!脅威の主義主張の一貫性保証は DB エンジニアの鏡だった件! - #garagekidztweetz
  • DBエンジニアのための技術勉強会で発表したスライドを公開しました。

    DBエンジニアのための技術勉強会というイベントで、リレーショナルモデルにおけるDB設計について話す機会を頂いた。リレーショナルモデルは非常に重要であるにも関わらず、現場ではないがしろにされてしまっている。その結果、アプリケーションのロジックを上手くクエリで表現できず、開発現場では非効率な開発が行われ、多くの人がデスマ的な状況に追い込まれている。そういう危機意識について、これまで何度かブログでも書いてきたし、WEB+DB Pressで連載している動機もその点にある。リレーショナルデータベースはやはりリレーショナルデータベースとして使うべきだ。そのための鍵となるのが、DB設計である。 今回はなんと約2時間の持ち時間を頂いた。リレーショナルモデルについてはこれまで何度か話す機会を頂いたが、2時間というのは最長記録である。それに合わせてスライドもボリュームたっぷりのものになった。過去のスライドと

    DBエンジニアのための技術勉強会で発表したスライドを公開しました。
  • データベース設計徹底指南

    DBエンジニアのための技術勉強会(第3回)で使用した資料です。主にリレーショナルモデルと正規化について解説しています。リレーショナルモデルの限界について正しく認識してこそ、リレーショナルモデルを理解したと言えると思います。

    データベース設計徹底指南
  • データベースのmasterとslaveの使い分けの話。2014年版 - Hateburo: kazeburo hatenablog

    社内で少し話題になったので。 運用上の話はfujiwaraさんの MySQLをmaster:slave=1:1構成にして参照をslaveに向けるのがなぜ良くないか - 酒日記 はてな支店 MySQLで参照の負荷分散を行うslaveは3台から構成するのがよいのでは - 酒日記 はてな支店 をみてください。 最近、新しくサービスができたり、新規機能でデータベースを追加する際には必ず全ての参照をmasterに向けてもらっています。理由は上記のエントリを読んでください。このような構成が取れるのはもちろん性能的にそれで問題ないからです。 新しいハードウェアに、設定されたMySQL、問題のないように書かれたSQLであれば、数千QPSは余裕に、また少し頑張れば数万QPSを一台で賄えます。なので大体のサービスはmaster一台で十分です。 さらにこの考え方を進めて、Webアプリケーションの中で sub d

    データベースのmasterとslaveの使い分けの話。2014年版 - Hateburo: kazeburo hatenablog
  • 【艦これ】でーたべーすがおちたんだな、なるほどなるほど : あ艦これ ~艦隊これくしょんまとめブログ~

    まーた艦これ@舞鶴 DBが落ちてる アクセス先API /kcsapi/api_get_member/ship レスポンス 500 Error Number: 1205 Lock wait timeout exceeded; try restarting transaction どうやらDB周りのトランザクション処理が高負荷の原因になっているようだね。何にトランザクション使っているのか意味不なんだけど。使わないならそれに越したことはない。単純なデータ構造にしておけば、戦闘処理以外でトランザクション使うところなんて無い筈なのにな… AP-DB間の仕様に根差しているところが大きそうだから、単純な負荷分散ではどうにもならなそう。。。多分舞鶴だけ新規プレイヤー詰め込んでるから、瞬間クエリー数が他のサーバー比べて多いのだろうな。

    【艦これ】でーたべーすがおちたんだな、なるほどなるほど : あ艦これ ~艦隊これくしょんまとめブログ~
    toritori0318
    toritori0318 2013/08/29
    MySQL Clusterなのかー
  • インメモリデータベース「MemSQL 2.0」公開。数百ノードへスケールアウト可能で大規模データベース対応へ - Publickey

    データベースをまるごとメインメモリ上で処理することにより、従来のハードディスクベースのリレーショナルデータベースよりも劇的な高速化を実現するインメモリデータベースであるMemSQLの最新版「MemSQL 2.0」が公開されました。 MemSQL 2.0はインメモリのスピードとSQLでの問い合わせ、スケールアウト機能、そしてエンタープライズ対応の可用性など、4つの特徴を持つと説明されています。 In-memory architecture Ad hoc SQL-based analytics Horizontal scale-out on commodity hardware Enterprise-grade durability and high availability スケールアウトでデータウェアハウスに対応 MemSQL 2.0はインメモリデータベースの特徴である高速な処理に加えて、

    インメモリデータベース「MemSQL 2.0」公開。数百ノードへスケールアウト可能で大規模データベース対応へ - Publickey
  • SQLアンチパターン

    書はDB設計やSQL記述の際に避けるべき事柄を1章で1つ、25個紹介する書籍です。リレーショナルデータベースを中心に据えたシステム開発には、様々な場面で陥りやすい失敗(アンチパターン)があります。書はデータベース論理設計、データベース物理設計、クエリの記述、アプリケーション開発という4つのカテゴリに分け、それぞれの分野におけるアンチパターンを紹介し、失敗を避けるためのより良い方法を紹介します。複数の値を持つ属性や再帰的なツリー構造の格納から、小数値の丸めやNULLの扱いに起因する問題、全文検索やSQLインジェクション、MVCアーキテクチャなど、実践的かつ幅広いトピックを網羅します。日語版では、MySQLのエキスパートとして著名な奥野幹也氏によるアンチパターンを収録。データベースに関わるすべてのエンジニア必携の一冊です。 書への称賛の声 監訳者まえがき はじめに I部 データベース論

    SQLアンチパターン
  • DBの世界に起こる変革 | エンタープライズエンジニアの独り言

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

  • パフォーマンス比較 Cassandra、Mongodb、SQLite、H2、MySQL、Postgres - cypher256's blog

    下記のようなシステムでパフォーマンスが良さげな SQLite を使用予定ですが、もっと速いものが無いか確認のため他のデータベースのパフォーマンスを計測してみました。SQL 利用前提ですが、NoSQL が圧倒的な性能を出す場合は検討する必要があるので KVS も確認しました。 データ件数は 1 億件程度、JDBC SQL 利用可能 INSERT、UPDATE はバッチ SELECT は主キーアクセス性能を重視 将来スケールアウトのための分散はありえるが、スタンドアロンで遅いのはだめ データベースのパフォーマンス比較 計測したデータベース データベース名 タイプ 形態 評判 計測についての備考 SQLite RDB 組み込み ※2 おもちゃ、Android標準 JDBC操作 ※1 H2 RDB 組み込み ※2 組み込み最速 JDBC操作 ※1 Derby RDB 組み込み ※2 Java標準で

    パフォーマンス比較 Cassandra、Mongodb、SQLite、H2、MySQL、Postgres - cypher256's blog
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
  • 今更CAP定理で分散データストアの勉強を始めてみた - As a Futurist...

    長くなったので三行でまとめると CAP 定理を素人なりに調べてみた 分散データストアを CAP 定理で俯瞰してみた どのデータストア使うかの決定因子は CAP 定理的な視点の方がインタフェースとかより先 異論は認めるというか、専門知識ゼロなのでもっと正しい理解があればぜひ教えてくださいませ。 はじめに 僕は MySQL 厨なんですが、最近はやれ「MongoDB がいい」だの「HBase 最高」だのとよく聞きます。これら多種多様なデータストアを語る上で、「RDBMS VS NoSQL」みたいに問い合わせ言語の方式やデータ保存形式の違いで語るのは宗教論かなぁと僕は思ってます。単体プロセスのデータストアとしての特徴とか性能とかは正直なんでもいいかなぁと。 思うに、質的に重要なのは MySQL の master-slave&sharding という Web で今までスタンダードに使われてきた分散

    今更CAP定理で分散データストアの勉強を始めてみた - As a Futurist...
  • [GDC 2012]Mobageのサービスを支えるデータベースシステムについて,ディー・エヌ・エー松信氏が解説

    [GDC 2012]Mobageのサービスを支えるデータベースシステムについて,ディー・エヌ・エー松信氏が解説 ライター:米田 聡 ディー・エヌ・エーの松信嘉範氏 GDC 2012では,日のディー・エヌ・エーもいくつかのセッションを持っていた。稿ではディー・エヌ・エーが展開するMobageのデータベースに関する「Scaling and Stabilizing Large Server Side Infrastructure」(大規模サーバーのスケーリングと安定化)と題されたセッションをレポートしてみたい。あまり派手な話題ではないので要点のみをお伝えするが,Mobageの裏にはこんな苦労があったのだ。 セッションを担当したのは,ディー・エヌ・エーの松信嘉範氏だ。松信氏の名はゲーム業界的には知られていないかもしれないが,Oracleエキスパートの称号を持ち,オラクルが手がけるデータベースサ

    [GDC 2012]Mobageのサービスを支えるデータベースシステムについて,ディー・エヌ・エー松信氏が解説