タグ

データベースとDBに関するmakoreeのブックマーク (24)

  • インデックスとは何?MySQL(InnoDB)とPostgreSQLのインデックスの違いとは?調べてみました

    はじめに こんにちは。calloc134 です。 前のハッカソンイベントで、UUID をプライマリキーに利用するかどうかの議論がありました。 結果的にはあまりパフォーマンス要件の高くないアプリケーションであったため、プライマリキーとして UUID を採用することにしたのですが、イベント終了後に気になったため、調査を行いました。 今回は、この調査の結果を元に、MySQL と PostgreSQL におけるインデックスの内部構造の違いと、UUID をプライマリキーにする際の問題についてまとめてみたいと思います。 インデックスの概要 インデックスとは インデックスとは、データベースのテーブルに対して、アクセスを高速に行うための指標となる構造のことです。 インデックスとは日語で索引ですが、まさに辞書の索引のように、アクセスにおいての手助けをしてくれます。 より具体的に解説すると、データベースにお

    インデックスとは何?MySQL(InnoDB)とPostgreSQLのインデックスの違いとは?調べてみました
  • SQLパフォーマンス詳解: 開発者のためのデータベースチューニング解説書

    前書き インデックスの 内部構造 インデックス リーフノード 検索 ツリー(Bツリー) 遅いインデックス パートI where 句 等価 演算子 プライマリキー 複合インデックス 遅いインデックス パートII 関数 - where 大文字・小文字を区別する 検索 ユーザ定義 関数 インデックスの作り過ぎ パラメータ化 クエリ 範囲 検索 大なり、小なり、 BETWEEN LIKEフィルタに 対するインデックス インデックスの結合 部分インデックス OracleにおけるNULL NULLに対する インデックス NOT NULL 制約 部分インデックスを エミュレートする 処理しにくい条件 日付型 数値文字列 列の連結 スマートなロジック 数式 パフォーマンスと スケーラビリティ データ 量 システム 負荷 レスポンス タイムとスループット 結合 処理 入れ子 ループ ハッシュ 結合 ソートマ

    SQLパフォーマンス詳解: 開発者のためのデータベースチューニング解説書
  • 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のインデックスとそのチューニングについてのオンラインブック
  • アンチパターンで学ぶDB設計 - Qiita

    はじめに データベース(DB)の設計は、システムの性能や保守性に大きな影響を与えます。 この記事では、最低限パフォーマンスの低下や管理の複雑化を引き起こさないようにするために覚えておくべきことを、アンチパターンとしてまとめました。 記事は、 現在仕事でデータベースを扱っており、データ設計について今一度おさらいしたい データベースについての基礎知識やお作法を身に付けたい という人を対象として想定しています。 これらに当てはまる方はぜひ一度確認してみてください! 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 DB設計アンチパターン 早速、DB設計におけるアンチパターンを紹介します。 それぞれアンチパターンのテーブルを見て

    アンチパターンで学ぶDB設計 - Qiita
  • オープンソースデータベース標準教科書ダウンロード

    新バージョン(Ver.3.0.0)公開! SQLを使ったデータベースの操作、作成、管理について、実習形式で基礎から学習できる教科書です オープンソースデータベース標準教科書は、データベース初心者を対象にSQLを使ったデータベースの基的な操作から一歩進んだ使い方までを実習形式で解説している学習テキストです。 PostgreSQLの基操作から体系的に解説をしているので、教育機関はもとより企業でのPostgreSQLの研修用テキストとして多く利用されているほか、「OSS-DB技術者認定試験 Silver」の学習にも役立てることができます。 (注:出題範囲の全てを網羅しているわけではありません。OSS-DBの受験対策は、LPI-Japan OSS-DB認定教材をご利用ください。) 今回のVer3.0.0へのバージョンアップでは基準となるデータベースをPostgreSQL 13にアップデートし、

    オープンソースデータベース標準教科書ダウンロード
  • こんなに違うよ MySQLとPostgreSQL /

    2024年6月22日に開催された「第14回 関西DB勉強会 」での、 『こんなに違うよ MySQLとPostgreSQLMySQLとPostgreSQLのニッチな違いを語る~』 の発表資料です。 https://kansaidbstudy.connpass.com/event/316348/

    こんなに違うよ MySQLとPostgreSQL /
  • 2024年度のサイバーエージェント新卒社内研修で「データベースの歴史」の話をしました | CyberAgent Developers Blog

    こんにちは。 AI事業部の協業リテールメディアdivでバックエンドエンジニアをしている yassun7010 といいます。 先日、 AI 事業部の新人研修で「データアプリケーション」の講師を同じチームの 千葉 と担当しました。 今回の記事では、主に私が担当した「データベースの歴史」の章の講義資料を公開し、資料を作成する際に考えていたこと・伝えたかったことを話します。 「データベースの歴史」で説明されている内容は、AI事業部の新卒研修で毎年取り上げられているものです。こういった研修の資料は、同じテーマであっても講師をする人の好みが反映されやすく、今年の資料も先人が作られた昨年の資料を参考にしつつ、私が好きな話題を多く取り入れたものに仕上がりました。 SlideShare でも公開しています。 今年の構成は、データベースを RDS・NoSQL・NewSQL として分け、下記のような構成を

    2024年度のサイバーエージェント新卒社内研修で「データベースの歴史」の話をしました | CyberAgent Developers Blog
  • クラウド時代のデータベースを理解するために①

    最近、分散データベースとかNewSQLとかサーバレスなデータベースとか色々聞きますよね。 でも、専門ではない人たちにとって、「何が違うの?」「自分たちに必要なDBはどれなの?」という点が分かりづらいと思います。 私も良く聞かれます。 AuroraはNewSQLですか? NewSQLってサーバレスなんですか? スケールできないDBとか聞きますけど、リードレプリカ増やせますよね? などなど。この辺に基的なところから答えられるように、順を追って解説していきましょう。 「コンピュートとストレージは別であれ」 と神が言うと、コンピュートとストレージは分離された。 と言うのは冗談ですが、まずはここからスタートしましょう。 クラウド以前のデータベースを使っていた人にはお馴染みのように、それまでデータベースは大きな1つの箱でした。 過去に私は下図でデータベース(厳密にはRDBMS)のコンポーネントを解説

    クラウド時代のデータベースを理解するために①
  • DB設計書の管理が楽になるDBML入門 – DBMLの書き方,dbdiagram.io, dbdocs の紹介 – | SIOS Tech. Lab

    Table users { id integer [pk] first_name varchar last_name varchar email varchar [not null] password varchar [note: 'Hashed password'] created_at datetime [not null, default: `now()`] updated_at datetime Indexes { email [unique, name: "ui_users_email"] } Note: 'table: users' } 上記のテーブル定義を dbdiagram.io の左側のコード記載部分に張り付けると右側にプレビューが表示されます。 以下は dbdiagram.io でのプレビューをした時の表示です。(Noteの箇所は説明のため加工しています) (1) Ta

    DB設計書の管理が楽になるDBML入門 – DBMLの書き方,dbdiagram.io, dbdocs の紹介 – | SIOS Tech. Lab
  • 「脱 Oracle」 速習ガイド (PostgreSQL 11〜15 対応版)

    はじめに ガイドの目的と対象読者 ガイドは Oracle から PostgreSQL へのデータベース移行リファレンスである。移行に要する工数の算定を容易化することを目的として、考慮すべき非互換情報をシンプルかつ具体的に整理してある。「脱 Oracle」を推進するマネジャーやリーダーのみならず、すべてのメンバーにとって必携のガイドとなることを目指した。ガイドの情報の多くはインターネット上に公開されているが、それらが体系的、一元的に、かつ最新の PostgreSQL に対応しているものが見当たらなかった(2023年3月12日現在)。そのため、読者の便宜を図る点においてガイドの果たす役割は大きいと考えている。 ガイドの前提 ガイドの内容は下記のデータベース間の移行を前提に記載してある。 移行元データベース

    「脱 Oracle」 速習ガイド (PostgreSQL 11〜15 対応版)
  • SQLは滅ぶべきか|ミック

    でかい釣り針が来たので釣られてみる。とりあえず以下の資料を読んでいただきたい。そんなに長くないのでサクッと読める。 SQLの記述順序と思考の順序が違うので書きにくいし、エディタの補完機能の恩恵が受けられないのが嫌だ、という意見はもう大昔からある。何度も何度も何度も繰り返されてきた議論である。以下の2011年のスレッドでも「SQLはFROM句が最初に来るべきではないか?」という問いが提起されている。すぐに出てこないが、筆者はこれより古い文書も見た記憶がある。

    SQLは滅ぶべきか|ミック
  • MySQL AB :: MySQL 4.1 リファレンスマニュアル

    概要 これは MySQL リファレンスマニュアルです。 MySQL 8.0 から 8.0.25、および NDB のバージョン 8.0 から 8.0.25-ndb-8.0.25 に基づく NDB Cluster リリースについてそれぞれ説明します。 まだリリースされていない MySQL バージョンの機能のドキュメントが含まれている場合があります。 リリースされたバージョンの詳細は、「MySQL 8.0 リリースノート」を参照してください。 MySQL 8.0 の機能. このマニュアルでは、MySQL 8.0 のエディションによっては含まれていない機能について説明します。このような機能は、ご自身にライセンス付与されている MySQL 8.0 のエディションに含まれていない場合があります。 MySQL 8.0 の使用しているエディションに含まれる機能に関する質問がある場合は、MySQL 8.0

    makoree
    makoree 2024/05/16
    “MySQL 8.0 リファレンスマニュアル”
  • インデックスを理解したい - Qiita

    はじめに みなさんはDBのインデックスを正しく使えていますか? 私はなんとなく「DBのパフォーマンスを向上するためのもの」という認識はあったのですが、 どのような場面で使うものなのか、逆にどのような場面では使うべきでないのかなど 明確に理解できていませんでした。 今回はそんなインデックスについての理解を深めたいと思います。 インデックスとは インデックスとは、その名の通り「索引」です。 表現の仕方と変えると、(x, a)という形式の配列であるとも言えます。 xというキー値とそれに結びつくaというデータ情報があり、 これを利用することですべてのデータを網羅して見ることなく、 まさにの索引のように目的のデータにたどり着くことができます。 インデックスはSQLのパフォーマンスを改善するための非常にポピュラーな手段であり、 理由としては下記の3点が挙げられます。 アプリケーションのコードに影響を

    インデックスを理解したい - Qiita
  • リレーショナル・データベースの世界

    序文 私の仕事は、DBエンジニアです。といっても別に望んでデータベースの世界へきたわけではなく、当初、私はこの分野が面白くありませんでした。「Web系は花形、データベースは日陰」という言葉も囁かれていました。今でも囁かれているかもしれません。 ですが、しばらくデータベースを触っているうちに、私はこの世界にとても興味深いテーマが多くあることを知りました。なぜもっと早く気づかなかったのか、後悔することしきりです。 もちろん、自分の不明が最大の原因ですが、この世界に足を踏み入れた当時、先生も、導きの書となる入門書もなかったことも事実です。 今でこそバイブルと仰ぐ『プログラマのためのSQL 第2版』も新入社員には敷居が高すぎました (2015年2月追記:その後、自分で第4版を訳出できたのだから、 人生は何があるか分からないものです)。 そこで、です。このサイトの目的は、データベースの世界に足を踏み

  • データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)

    これはなに ども、レバテック開発部のもりたです。最近めっちゃ元気!! 今回は『データベースについて勉強したいあなたに送る技術書17冊(+11冊1講義7link)』として、もりたがここ半年くらいでわーっと集めたデータベース周りの書籍(とか)を紹介していきます。アプリケーションって結局はデータベースみたいなところがあると思うんですが、おれは長いことデータベースをどう学んだら良いのか分かりませんでした。同じような気持ちを抱えているITエンジニアの人もいると思うので、学習ロードマップと合わせて紹介していきます。 なお具体的な対象読者は業務でなんとなくSQL書いてるけど、ウィンドウ関数とか言われると分からんな……くらいの人です。 扱う領域と扱わない領域 扱う領域としてはだいたい以下 再入門 SQL 内部構造 論理設計 周辺知識 データベース理論 その他高度なもの モデリング、NoSQL、分散データ

    データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)
  • PostgreSQLの仕組みから学ぶために必要な資料 - そーだいなるらくがき帳

    質問されることが多いのでPostgreSQL初学者が運用を行うためにしっておく知識に必要な内容をまとめる。 PostgreSQLの基的なアーキテクチャ PostgreSQLのアーキテクチャを知らないと自分がやっている作業が危険な作業かどうかわからないし、パラメータの意味もわからない。 そこで以下のリンクを読むと良い。 富士通が後述の資料を参考にまとめたのだろうなと思われる記事。 非常によくまとまっているのでわかりやすい。 www.fujitsu.com もっと細かく知りたいならPostgreSQL Internalsがおすすめ。 富士通の資料と重複するところがあるがこっちが家。 Githubで管理されているので誤字脱字などあったら気軽にPRを出してほしい。 www.postgresqlinternals.org PostgreSQL Internalsが少し古いので最新事情で知りたい場

    PostgreSQLの仕組みから学ぶために必要な資料 - そーだいなるらくがき帳
  • データベース概論Ⅰ | 筑波大学オープンコースウェア|TSUKUBA OCW | 北川博之

    データベースシステムに関する入門。データベースの基概念、データモデリング、リレーショナルデータモデル、データベース言語SQL、リレーショナルデータベース設計論、物理的データ格納法、問合せ処理等について講述する。 (2018年度) 【教科書】 「データベースシステム」(北川博之著、オーム社) 北川 博之筑波大学 計算科学研究センター教授1978年東京大学理学部物理学科卒業。1980年同大学理学系研究科修士課程修了。日電気(株)勤務の後、筑波大学電子・情報工学系講師、同助教授を経て、現在、筑波大学計算科学研究センター教授。理学博士(東京大学)。データベース、データ統合、データマイニング、ストリーム処理、情報検索、ビッグデータ等の研究に従事。著書「データベースシステム」(オーム社)等。日データベース学会会長、ACM SIGMOD日支部委員長等を歴任。情報処理学会フェロー、電子情報通信学会

    データベース概論Ⅰ | 筑波大学オープンコースウェア|TSUKUBA OCW | 北川博之
  • PostgreSQLとMySQLのメジャーバージョンアップのためのチートシート作った - そーだいなるらくがき帳

    中国地方DB勉強会 in 岡山の登壇資料です。 そのうちここで登壇動画が公開されることでしょう。 肝心なチートシートは以下のとおり。 PostgreSQL gist.github.com MySQL gist.github.com チートシートだけじゃわからない!困ってる! Have Fun Techがバージョンアップのサポートしますのでお気軽にご相談ください。 have-fun.tech まとめ やっぱ中国地方DB勉強会は最高だぜ!

    PostgreSQLとMySQLのメジャーバージョンアップのためのチートシート作った - そーだいなるらくがき帳
  • SQLの実行計画の読み方 |

    今回は、SQLを書く上で特にパフォーマンスに影響のあるSQLの実行計画の読み方について解説します。実行計画はデータベース製品によってさまざまに差異がありますが、ここでは比較的どのデータベース製品でも共通する内容について解説します。 実行計画とは記述したSQLが実際にデータベースの内部でどのように処理されて結果を返すか、その処理方法を記述した情報です。 A5:SQL Mk-2では、SQLエディタで実行計画を見たい SQL の上にキャレットがある状態でメニューから [SQL(S)] – [SQLの実行計画(J)] または、Ctrl+E で表示できます。 表示の仕方はデータベース製品ごとに異なりますが、多くのデータベース製品ではツリー状の情報として表現されます。(このため A5:SQL Mk-2でもツリービューで実行計画を表示します。) ツリーのリーフ(端)から処理が行われ、ルート(根)に向かっ

  • 「データベーススペシャリスト試験」戦略的学習のススメ

    書籍の中から有用な技術情報をピックアップして紹介するシリーズ。今回は、秀和システム発行の書籍ポケットスタディ データベーススペシャリスト [第2版](2015年12月22日発行)』からの抜粋です。 ご注意:稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。 はじめに 戦略的学習のススメ 筆者の具志堅融と申します。 データベーススペシャリスト試験について、合格のために最も重要なことは過去問題演習であると言えます。これは同じパターンの出題が非常に多いからです。しかし、難易度の高い午後問題をいきなり解くのは無理があります。逆に「腰を据えて知識習得に励み、万全な状態になってから過去問題を順番に解く」という方針でも、多くの時間と労力がかかってしまうため、実力をつけるにあたってはむしろ非効率です。

    「データベーススペシャリスト試験」戦略的学習のススメ