タグ

DBとdbとMySQLに関するfm315のブックマーク (15)

  • MySQLで階層構造を扱うための再帰的なクエリの実装方法と実用例

    1.はじめに RDBでの階層構造の関係を持つデータを扱う上で、 効率的なデータの持ち方や抽出方法について検証を行っています。 結論から先に 階層構造を扱う方法として下記の種類があります。 隣接リスト 経路列挙 入れ子集合 閉包テーブル 再帰クエリ(WITH RECURSIVE)を使うと階層データを扱う上でのパフォーマンスが得られます。 検索性、更新量、データ量など加味すると隣接リストで再帰クエリを用いるのがよさそう。 2.階層構造を持つデータの概要 階層構造を持つデータとは 複数の要素(データ)が親子関係で結びついている構造を持つデータ 1つの要素が複数の要素の親になることができ、 また、1つの要素が複数の子要素を持つこともあります。 ある要素を親として、細分化された子要素であったり、 類似する要素を抽象化したものを親要素とするようなデータ。 階層構造を持つデータの例 組織における事業部、

    MySQLで階層構造を扱うための再帰的なクエリの実装方法と実用例
  • 「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターン

    この記事は DeNA 20 新卒 Advent Calendar 2020 19日目の記事です。 はじめに MySQLやPostgreSQLに代表されるRDBMSではトランザクションと呼ばれる仕組みが提供されています。多くのWebアプリケーションエンジニアはこのトランザクションを駆使してDBとやりとりをするロジックを組み立てることになります。 しかし不整合を起こしたくない処理があるからといって闇雲にトランザクションを張ったり、トランザクションが張られているからと安心してアプリケーション側で闇雲にロジックを組み立ててしまうと思わぬバグを生むことになってしまいます。 このエントリでは、「トランザクションを張っておけば大丈夫」という考え方は危険な場合もあるということを、ありがちな実装例を交えて紹介していきます。 並列に処理されるトランザクション そもそも、トランザクションは全て直列に処理されるわ

    「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターン
  • InnoDBのすゝめ(仮)

    InnoDBの特性など考慮しつつ、ゲーム向けのDBSQLを設計する上でのヒントや、注意するポイントなどです。Read less

    InnoDBのすゝめ(仮)
    fm315
    fm315 2019/10/04
  • mysqlをdisる会 - Qiita

    はじめに やあ (´・ω・`) ようこそ、バーボンハウスへ。 このmysqlはサービスだから、まずsystemctl start mysqld して落ち着いて欲しい。 うん、「また」なんだ。済まない。 仏の顔もって言うしね、謝って許してもらおうとも思っていない。 でも、このタイトルを見たとき、君は、きっと言葉では言い表せない 「ときめき」みたいなものを感じてくれたと思う。 殺伐とした世の中で、そういう気持ちを忘れないで欲しい そう思って、この記事をかいたんだ じゃあ、注文を聞こうか。 というわけでmysqlをdisります。disるだけなので内容はありません。いいね? mysql には罠がいっぱい そうなんですよ罠がいっぱいなんですよ奥さん。 いやこれはおそらくmysqlに限った話ではないんですけど例えばこういうの! MySQLのチューニングなんてしたらパフォーマンス落ちるだけだし、デフォル

    mysqlをdisる会 - Qiita
  • DBコマンド横断比較リファレンスを作りました - clock-up-blog

    横断的にDB操作の類似コマンドを探すためのサイト 例えば MySQL を知っている人が 新しく他のデータベース、例えば Oracle を学習する際に MySQL でいうところのアレは Oracle ではどういうコマンドなんだろう という感じに情報を探す場面が多くあります。 そういう類の情報を探すときに役に立ちそうなリファレンスサイトを作りました。 xref.jp xref.jp - Database 追記: コンテンツ増やしました yum, apt-get, rpm 等々の横断比較リファレンス - clock-up-blog ソースコード GitHub に上げてあるので興味ある人は見てみると良いです。 kobake/xref.jp · GitHub PHP で書いてます。すんごい汚いです。謙遜じゃなくて当に。 プルリク歓迎。 機能 マトリクス方向の切替 比較表の見出しの向きって、その組み

    DBコマンド横断比較リファレンスを作りました - clock-up-blog
  • RDBにおけるバリデーションをリレーショナルモデルから考える

    機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで

    RDBにおけるバリデーションをリレーショナルモデルから考える
  • 分割と整合性と戦う

    え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation

    分割と整合性と戦う
  • クックパッドにおける最近のActiveRecord運用事情 - クックパッド開発者ブログ

    インフラストラクチャー部の成田(@mirakui)です。 Rails の OR マッパーである ActiveRecord ですが、みなさんどのように運用していますか? ActiveRecord を使うと、 SQL を直接扱うことなく、抽象化された表現で RDB にアクセスできるので、アプリケーションの開発効率という観点ではメリットが大きいです。 一方で、 ActiveRecord が駆使されているアプリケーションをサーバに配置してプロダクションとして運用する立場からすると、いくつかの問題に突き当たります。 まずはクックパッド体アプリケーションにおける、最新の rake stats をご覧ください。 +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC

    クックパッドにおける最近のActiveRecord運用事情 - クックパッド開発者ブログ
  • 『アメーバピグにおけるDB構成&対応記』

    2ヶ月前にインフルエンザとウィルス性胃腸炎でひどくダメージを受けた増田(@masudaK)です。アメーバピグは2009年2月に始まったサービスで、FLASH・Javaで作られています。そして、データストアにMySQLを用いてます。記事では、わたくしが2年ほど見続けているアメーバピグのDB環境について構成や、日々どのようにして問題と向き合っているかを紹介したいと思います。インフラ寄りの内容が多いため、アプリ寄りの話は弊社生沼の資料を御覧ください。 1. 構成と規模 1.1. 構成 まず構成ですが、読み書きはすべてマスターへ行うようにしています。そのため、スレーブには参照を向けず、ホットスタンバイとして使っています。バージョンに関しては2012年中旬までは5.0を使ってましたが、DC移転にあわせて5.5にあげました。ロック機能を用いたシャード構成をしてまして、2014年3月現在6シャードにな

    『アメーバピグにおけるDB構成&対応記』
  • MySQLにおいて真とされる値を調べた - たごもりすメモ

    このエントリはMySQL Casual Advent Calendar 2013の1日目の記事です。 はじめに SQLを書くとき、普通は where でその処理が対象とする行を絞り込みます。要するに where 以下が真である行が対象になるわけですね。簡単には以下のように書きます。 DELETE FROM tbl WHERE 1=1 さて、もちろん WHERE 以下には実際の各行のデータを用いるわけですが、例えば削除用フラグを各行に持たせておいて、バッチ処理で一気に消したい場合ならこのようにします。 -- delflag TINYINT(1) DELETE FROM tbl WHERE delflag=1 ここで、おっと、と思う人もいると思います。そう、MySQL にはBOOL型がありません。いや、正確にはBOOLという独立の型は存在せず、BOOLといえばTINYINT(1)のことである、

    MySQLにおいて真とされる値を調べた - たごもりすメモ
    fm315
    fm315 2013/12/01
  • 高負荷サイトのボトルネックを見つけるには : DSAS開発者の部屋

    はじめに アクセスが急増すると、応答時間が著しく悪化するサイトはありませんか? 普段は200ミリ秒以内で安定してアクセスをさばいているのに、イベントやらキャンペーンやらを開始した瞬間から、普段の2倍や3倍のアクセスが殺到し、その結果、レスポンスタイムが3秒とか9秒とかかかるようになってしまうことってありますよね。 あるサイトの実状 つい先日まで、そんなサイトが私の目の前にもありました。自社で運営している某ソーシャル系のサイトなんですが、イベント開始時刻と同時にアクセス数が急増するのです。とはいえ、所詮は普段の2倍とか3倍程度の数なのだから、少なくとも1秒以内にレスポンスを返せるくらいの性能は維持したいものです。 しかし実際は困ったことに、応答に3秒以上もかかってしまう処理が大量に発生してしまう状況に陥ってしまっていました。これはきっと、どこかにボトルネックがあるに違いありません。 仮説を立

    高負荷サイトのボトルネックを見つけるには : DSAS開発者の部屋
  • 「Facebookになったつもりで考える」── 第1回NHNテクノロジーカンファレンスから - ITジャーナリスト星暁雄の"情報論"ノート

    2012年5月19日(土)、「第1回NHNテクノロジーカンファレンス」というイベントに参加しました。グリー、DeNA、NHN Japan各社のストレージに関する議論、そして新しい分散フレームワークDripcastに関する技術的な話を聴いてきました。 カンファレンスの開催概要はこちら。 第1回NHNテクノロジーカンファレンス詳細内容決定! 主催者から一つ大事なメッセージが。「YAPC::Asia2012(2012年9月27〜29日)にぜひ来てください」とのことです。 以下、このカンファレンスのメモです。網羅的ではありません。全貌を把握したい方は動画と発表資料を見てくださるようお願いします。 DeNAのMySQL運用管理の実際を解説 講演タイトルは「ビッグデータと戦うMobage DBA」( 発表資料)。講演者はディー・エヌ・エー システム統括IT基盤部Mobage基盤管理グループ岩永亮介

    「Facebookになったつもりで考える」── 第1回NHNテクノロジーカンファレンスから - ITジャーナリスト星暁雄の"情報論"ノート
  • 2大オープンソースRDBMSの近未来が見えた!(1/2) - @IT

    オープンソースDBMSのコミュニティが一堂に会し、それぞれの技術について発表し合う「オープンソースカンファレンス 2011.DB」。MySQLとPostgreSQLの2大DBMSの将来像を探った。(編集部) 2011年11月5日、オラクル青山センターにてオープンソースカンファレンス2011.DBが開催された。話題をデータベースに限定してオープンソースカンファレンスを開催したのは、2008年6月以来3年ぶり。イベントではコミュニティを代表するメンバーが各製品の近況や概要を解説した。商用製品のオフィシャルなセミナーと違い、聴衆が仲間であったり、関連コミュニティのメンバーであったりするので、勉強会のように打ち解けた雰囲気で進んでいく。記事ではPostgreSQLMySQLのセッションを中心に紹介する。 9.1では同期レプリケーションまで進化 最初のセッションで登壇したのは日PostgreS

  • 正しいベンチマークをするための10のポイント

    世の中ではたくさんの人が独自にベンチマークを行ない、独自に情報発信がされています。そのベンチマークの中には、非常に参考になるものもあれば、現実性に大きく欠けるものもあります。競合他社が、ライバル社の製品にとって不利な条件でベンチマークを行い、それを発信することも日常的に行われています。ベンチマークの結果を鵜呑みにすることは危険で、結果の意味を判断するスキルを持つことが重要です。これはプロジェクトにおいて負荷テストを行う場合にも重要です。負荷テストの条件設定が正しいかどうかを判断できるようになるためです。 ここでは、私がDBサーバのベンチマーク/負荷テストを行ったり結果を読んだりする上で、心がけているポイントを10個ほど紹介したいと思います。 ■ハードウェアに関する4つのポイント 1. ハードウェアのスペックと設定を注視する ハードウェア構成によってベンチマーク結果は劇的に変わるので、言わず

  • 社内サーバインフラ勉強会(DB)

    ASPLOS2017: Building Durable Transactions with Decoupling for Persistent MemoryAtsushi Koshiba

    社内サーバインフラ勉強会(DB)
  • 1