DBに関するryota-murakamiのブックマーク (36)

  • SQLのインデックスとそのチューニングについてのオンラインブック

    開発者向けのSQLインデックス解説サイト、管理についての間違いない知識を提供します。 インデックスは開発時には忘れられがちである一方で、非常に効果的なSQLのチューニング方法です。Use The Index, Lukeでは、HibernateなどのORMツールの解説にとどまらず、SQLのインデックスについて基礎から説明します。 Use The Index, LukeはSQLパフォーマンス詳解のWeb上の無料版です。サイトを気に入って頂けたら、ぜひ書籍も購入してみて下さい。また、このサイトの運営をサポートする様々なグッズも販売しています。 MySQLOracleSQL ServerなどにおけるSQLのインデックスUse The Index, Lukeでは、ベンダにとらわれないインデックスの説明を心がけています。製品特有の事柄については、以下のような表示をしています。 DB2Use The

    SQLのインデックスとそのチューニングについてのオンラインブック
  • なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策|ハイクラス転職・求人情報サイト AMBI(アンビ)

    なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策 『SQLパフォーマンス詳解』の翻訳者の松浦隼人さんに、8つの「SQLが重たくなる原因とその対策」を聞きました。システムのボトルネックになるような「問題のあるSQL」を回避するノウハウを学びましょう。 データの操作や定義をする言語「SQL」は、どのような領域を担うエンジニアにとっても必修科目です。しかし、その仕様をきちんと理解し、パフォーマンスに優れたSQLを書ける方はそれほど多くありません。問題のあるSQLを書いてしまい、知らぬ間にそれがシステムのボトルネックになってしまう事態はよく発生します。 では、どうすればそうした事態を回避できるのでしょうか? そのノウハウを学ぶため、今回は『SQLパフォーマンス詳解』の翻訳者であり、自身もエンジニアでもある松浦隼人(まつうら・はやと/@dblmkt)さんに8つ

    なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策|ハイクラス転職・求人情報サイト AMBI(アンビ)
  • Why Google's Spanner Database Won't Do As Well As Its Clone

    Why Google's Spanner Database Won't Do As Well As Its Clone
    ryota-murakami
    ryota-murakami 2017/07/06
    RDBの勝利だ
  • モデル設計を適当にやるとどうなるのか

    2017年7月24日に行われた「技術的負債ナイト」(https://speee.connpass.com/event/60381/)の登壇資料です。 プログラミングにおいて、どういうコメントをどういう風に書いていけば良いのか、またどのようなタイミングと考え方で書けば良いのかについて述べていきます。

    モデル設計を適当にやるとどうなるのか
  • そのデータベース、"上手に" スケールアウトしますか? | GridDB Developers

    データベースの性能を向上させるための手法には、大きく分けて「スケールアップ」と「スケールアウト」の2つがあります。「スケールアップ」とは、データベースが動作しているサーバーの単体性能を向上させることです。具体的には、メモリを追加する、CPU を追加する、 ストレージをSSD に交換する、という手段が考えられます。一方「スケールアウト」とは、サーバーの数を増やすことで性能向上を狙うものです。 それぞれの手法は一長一短ありますが、 スケールアップによる性能向上には物理的な限界があります。スケールアウトの場合、必要に応じてサーバーの台数を追加していけば、データ量が爆発的に増加したとしても十分に対応できます。ただしそのためには、データベースの性能がサーバー台数に比例しなければなりません。投入したハードウェアリソースの量に比例して全体のスループットが向上するシステムのことを、スケーラビリティ(sca

    そのデータベース、"上手に" スケールアウトしますか? | GridDB Developers
  • 今こそ知りたい、2大OSSデータベースのMySQLとPostgreSQLの違いについて話をしてきた - そーだいなるらくがき帳

    去年書いたSoftwareDesignを題材にお話してください!って言われたので話してきました。 下の特集記事は1年経った今も現役で読める内容なので興味がある人はぜひ読んでみてください。 またRDBアンチパターンという連載をしていますのでこちらもあわせてご確認くださいっ! gihyo.jp そして当日の資料はこちらです。 SoftwareDesignにしっかりとMySQLとPostgreSQLの違いについては触れているのでそこでは触れていない、ハマりどころや初めて両方のDBを知ったと言う人向けのカジュアルは部分を攻めました。 またDBだけの勉強会ですので普段説明するようなところは省略し、できるだけ経験談やコアの話に注力したつもりです。 このへんは資料に含まれて居ないので当日居た人たちだけの特典ですね!! ということで実は今月は登壇3週連続だったのですが一段落しました。 来週はAWS Sum

    今こそ知りたい、2大OSSデータベースのMySQLとPostgreSQLの違いについて話をしてきた - そーだいなるらくがき帳
  • Hibernateはどのようにして私のキャリアを破滅寸前にしたか | To Be Decided

    このエントリでは、Grzegorz Gajosによる記事、How Hibernate Almost Ruined My Careerを紹介する。 (Grzegorzから和訳と転載の許可は得た。) 以下はその全文の和訳だが、意訳超訳が混じっているので、もとのニュアンスを知りたければ元記事を読んでもいいし、読まなくてもいい。 想像してくれ。 君はJava開発者で、次のビッグプロジェクトを開始しようとしているところだ。 君は、そのプロジェクト全体に影響する根的な決断をする必要がある。 君の柔軟なデータモデルをオブジェクト指向で抽象化するベストな方法を選択したい。生のSQLを扱いたくはないからね。 どんな種類のデータもサポートしたいし、理想では全種のデータベースをサポートしたい。 すぐに思いつくのは、単にHibernateを使うという解だ。そうだろ? Javaディベロッパの90%は君に同意するだ

    Hibernateはどのようにして私のキャリアを破滅寸前にしたか | To Be Decided
  • Oracle INDEXを追加したときUPDATEとINSERTにどのくらい影響するのか

    「クエリのパフォーマンスを向上させるにはインデックスの作成が効果的である」という対策は、パフォーマンスチューニングを行う段階で必ず候補となる対策手段の一つです。これまでに公開した、「インデックスの作成でSELECT文の返答時間はどれくらい早くなるのか」「続・パーティションの効果を検証する」でも、インデックスの効果を裏打ちする結果が得られました。 では、ただインデックスを必要なクエリ向けに全て作成すればよいのか、という話になると簡単には頷けないのが現状です。「SELECTには目を見張る効果が得られるけど、UPDATEは遅くなるよね。INSERTも遅くなるかもしれないよね。そのあたりの変異が見られないか。」そんな疑問が弊社メンバーから挙がっていましたので、今回はここに焦点を当てていきます。 検証内容 10万件のレコードを持つテーブルを用意します。このテーブルに、下記の作業実施していった際の速度

    Oracle INDEXを追加したときUPDATEとINSERTにどのくらい影響するのか
  • 第2回 一番の基本、シーケンシャルスキャン | gihyo.jp

    さて、前回の大まかな地図を元に、第2回では実際に問い合わせ手法の詳細について見ていきます。最初に取り上げるのはシーケンシャルスキャンという、データベース検索の最も基になるアクセス手法です。 シーケンシャルスキャンとは シーケンシャルスキャンは、日語に直訳すると「順次検索」という形になります。端的に言ってしまえば「すべてのデータを順に検索する」ということで、結果として通常はすべてのデータを読み込んで返します。その後、検索条件や取得件数などの必要に応じてフィルタリングが行われることもあります。この方法は、すべての件数を対象として検討するため、条件を選ばず使えます。そのほか、どんな複雑なSQLが来てもシーケンシャルスキャンなら取りこぼしがありません。たとえばなんの変哲もない といったSQLを実行するに当たっては、シーケンシャルスキャンを使います。 図1 シーケンシャルスキャンの実行形 シーケ

    第2回 一番の基本、シーケンシャルスキャン | gihyo.jp
  • Webエンジニアに知ってほしいRDBアンチパターン

    YAPC::Kansaiの登壇資料です。

    Webエンジニアに知ってほしいRDBアンチパターン
  • MySQLアンチパターン

    9. Reference, SQLアンチパターン 個⼈的には実務経験積んでから、「やっぱアンチパターンな のかよ︕」って⽅が捗ると思う 若いうちは「あっこれ 進研ゼミ SQLアンチパターンで⾒た やつだ︕」ってなっても理解が得られずに⼼が死ぬことが多 い 今頃たぶんTwitterで「ウチはそんなことしないぞ」って技術的ホワ イト企業の戦⼠たちが #mysqlcasual つけて呟いてる からみんな参 考にしよう - 8/42

    MySQLアンチパターン
    ryota-murakami
    ryota-murakami 2017/02/03
    技術的ホワイト企業
  • SQLチューニングの必須知識を総ざらい(後編)

    連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状で広く使われているOracle9iの機能を基とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局) 連載目次 前編に引き続き、SQLチューニングを行うために必要な基礎知識として、アクセスするデータ・ブロック数に大きな影響を与える結合方法の種類と、オプティマイザの実行計画の決定に影響を与える統計情報、ヒントについて説明していきます。 結合方法の種類 正規化されたデータベースでは、必要なデータを得るために複数の表からデータを取得、ひも付ける(結合する)処理が数多く発生します。表を結合する方法にはいくつかの種類が

    SQLチューニングの必須知識を総ざらい(後編)
    ryota-murakami
    ryota-murakami 2017/01/25
    めっちゃいい
  • 論理設計まとめ - Qiita

    概念モデルをリレーショナルデータベースで扱える形式に変換する作業です。 ER図 実体と実体の関係を示したものや、実体に対する操作などのことで、動詞で表現することができる。 また、属性とは、実体の特性や実体に関する情報。 エンティティ 一単位として扱われるデータのまとまり。 リレーションシップ 複数のテーブルの間で特定のフィールドを関連付ける機能 複数のテーブルを連結して情報をまとめたりすることができます。 正規化 正規化とは、データを一元管理するための理論です。 データの正規化 データごとの属性や関連性を分析し、属性の最適なグループ化を図ることが目的です。 関数従属 属性Aの値が決まると他の属性Bの値が一意に決まるとき、属性Bは属性Aに関数従属となります。 完全従属 A属性B属性の間でA→Bが成立して、Aが複数の属性の集合で成り立っている場合、Aの部分集合も関数従属が成立しない状態です。

    論理設計まとめ - Qiita
  • 『MySQL WorkBench PK, NN, UQ, BIN, UN, ZF, AI』

    引き続き絡むの記号を確認 同じように??悩んでる人参照(´・ω・)ス http://forums.mysql.com/read.php?152,358556,358556 http://dev.mysql.com/doc/workbench/en/index.html ----------------------------------------------------- PK :PRIMARY KEY NN :not null チェックでnot null UQ :unique BIN :binary UN :unsigned 符号なし(´・ω・)スね ZF :zero fill AI :auto increment Defult :初期値 ----------------------------------------------------- [intrinsic column fl

    『MySQL WorkBench PK, NN, UQ, BIN, UN, ZF, AI』
  • カーネギーメロンのDBに関する講義が面白いのでおすすめ - だいたいよくわからないブログ

    ここに書くことによって途中でやめられなくするメソッドです。 ハッカーニュースを眺めていたら以下のようなCS系講義動画のまとめリポジトリが流れていました。 GitHub - Developer-Y/cs-video-courses: List of Computer Science courses with video lectures. へーっと思いながら何個かポチってみたところ以下に出くわしました。 15721.courses.cs.cmu.edu 英語が(自分にとって)聞き取りやすく、動画の品質(画質やスライドがちゃんと見えるかどうかといった部分)も良いものでかつ興味のある内容で出来ればスライドもおしゃれで・・・となるとなかなか少ないですが、これはかなり見やすいです。 スライドも概念図が頻繁に登場したりして、これだけでも聞き取れなかった部分などをかなり補完できます。 スケジュールページ

    カーネギーメロンのDBに関する講義が面白いのでおすすめ - だいたいよくわからないブログ
  • 非効率なサブクエリを改善する – igreks開発日記

  • 若手プログラマー必読!5分で理解できるER図の書き方5ステップ

    データベース設計の基中の基であるER図。ER図を書きたいけど、「記法が分からない」「どういうステップで書けば良いか分からない」という若手エンジニアも多いのではないでしょうか。 ER図は10種類近くあり、種類によって記法が異なります。このことが難しいイメージを与えていますが、実はそれほど難しいものではありません。覚えれば良いER図は2種類だけです。 しかも、この記事で解説している基礎知識を押えれば、たった5つのステップで作成することができます。 この記事では、ER図の基礎知識からER図の書き方まで、エンジニアが抑えておくべきER図の全知識をどこよりも分かりやすく解説します。 この記事を読み終えたとき、若手エンジニアもER図を書けるようになっているでしょう。 この記事を参考に最適なデータベース設計を進めて下さい。 1.ER図とは ER図とは、「データベース設計(データモデリング)で使う設計

    若手プログラマー必読!5分で理解できるER図の書き方5ステップ
  • データベースについてのそもそも論

    先月のはじめのほうで、「リレーショナルデータベースとの上手な付き合い方」というタイトルで、2回発表をした。ひとつは「まべ☆てっく Vol.1」であり、もうひとつは「Hacker Tackle(ハカタクル?)」である。 「リレーショナルデータベースの開発・運用に纏わるもろもろの話をして欲しい」というような内容の話をしてくれないかという同じような依頼を、ちょうど2日違いのイベントで頂いた。9/8のまべ☆てっくと、9/10のHacker Tackleである。そうなると必然的に話す内容も、同じようなものになってくる。同じ人物(=私)が話すのだから、テーマも同じで時期も同じであれば、内容が同じようなものになるのが自然である。もし違うものになってしまっているのであれば、片方はウソをついているということになるはずだ。今日は発表に使用したスライドを紹介しつつ、なぜデータベースを使うべきなのか(あるいは使う

    データベースについてのそもそも論
  • BigQuery速習会@Wantedly - 資料一覧 - connpass

    「BigQuery速習会@Wantedly」の資料一覧です。

    BigQuery速習会@Wantedly - 資料一覧 - connpass
  • 俺が、俺こそがERMasterだ!! - シスアーキ in はてな

    やあやあ、僕ですよ! 皆さん、ER図作成ツールって何を使っていますか? 僕は以前にERMasterを使っていて、すごい使いやすかった*1のですが、 テーブル数が多くなると途端に画面が重くなる 一つのビューでしかER図を扱えない という状況があって、それ以来は違うツールを使っていました*2。 ER図作成ツールとして僕の知っている範囲では、 A5:SQL Mk-2 Astah(UML作成ツール。クラス図をER図がわりにしています) MySQL Workbench Object Browser ER などですかね。 どれも一長一短でしっくりきません。 最近、とある大きなプロジェクトをスタートするにあたり、今回もA5かな〜とか思っていたのですが、JJUG CCC Spring 2016でU-NEXTがERMasterを使って大規模開発をしたという話を聞きました! ここら辺の話はこちらに書いてます!

    俺が、俺こそがERMasterだ!! - シスアーキ in はてな