タグ

dbに関するmurasukeのブックマーク (103)

  • クラウド時代のデータベースを理解するために①

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

    クラウド時代のデータベースを理解するために①
  • tblsでデータベースドキュメントを生成する(1.ドキュメント生成編) - Qiita

    ドキュメント生成編 テーブル情報補完編 CI連携編 tblsを使うと、1コマンドでデータベースドキュメントを生成できます。 tbls とは tblsのKey featuresには以下のように記載しています Document a database automatically in GFM format. Output database schema in many formats. 1コマンドで、Markdown形式で生成されますので、そのままGitHubなどのリポジトリにコミットして閲覧することができます(ドキュメントも更新履歴が残ったほうがいいですからね)。 上記以外にもスキーマをPlantUMLやJSON、Excelファイルで出力する機能などもあります Single binary = CI-Friendly. Goで書かれているため、バイナリポン置きで利用できます。つまり、CIに組み込

    tblsでデータベースドキュメントを生成する(1.ドキュメント生成編) - Qiita
  • DBのロックについてあまり意識したことがない人に向けた実は覚えておきたいロックについての知識 - CARTA TECH BLOG

    みなさん、おはようございます! CARTA fluct エンジニア の なっかー@konsent_nakka です。 CARTA TECH BLOG アドベントカレンダー 12/14ということで、普段DBのロックについてあまり意識したことがない人に向けた実は覚えておきたいロックについての知識をざっとまとめてみました。 とりあえずこれだけ読んでおけば最低限は困らない、もし何か困った時にはあそこで出てきた内容をもう少し深く調べて見るか、というきっかけになれば良いなと思います。 厳密な定義よりも普段DBを扱う中でロックについてあまり意識したことがないような人にもすっと入ってくるように簡単な表現を優先して書いていますがご了承ください。 目次 留意事項 排他ロックと共有ロック トランザクション分離レベル SELECTのロックレベルを変更する 共有ロック: LOCK IN SHARE MODE 排他ロ

    DBのロックについてあまり意識したことがない人に向けた実は覚えておきたいロックについての知識 - CARTA TECH BLOG
    murasuke
    murasuke 2022/12/17
    スナップショットを作成するタイミングは最初の読み取り時点。 直感的にはトランザクションを開始したタイミングだと思ってしまいそうなので間違えないように気をつける必要があります
  • Using filesort

    去年ソートに関する記事を書いたが、今日はその続きである。 MySQLでEXPLAIN SELECT...を実行するとExtraフィールドでよく見かける「Using filesort」という文字列。Filesortって一体なんだろう?と思ったことはないだろうか。単刀直入に言ってFilesortの正体はクイックソートである。 クエリにORDER BYが含まれる場合、MySQLはある程度の大きさまでは全てメモリ内でクイックソートを処理する。ある程度の大きさとはsort_buffer_sizeであり、これはセッションごとに変更可能である。ソートに必要なメモリがsort_buffer_sizeより大きくなると、テンポラリファイル(テンポラリテーブルではない)が作成され、メモリとファイルを併用してクイックソートが実行される。 Filesortは全てのソート処理において実行されるわけではない。前回の記事

    Using filesort
  • 主要RDBMS製品の比較 – 同時実行制御, トランザクション分離レベル | コーソルDatabaseエンジニアのBlog

    Microsoft SQL ServerMySQLOracle DatabasePostgreSQL主要RDBMS製品の比較 2022.09.22 渡部 亮太 主要RDBMS製品の比較 – 同時実行制御, トランザクション分離レベル Oracle ACE Proの渡部です。 主要なRDBMS製品を比較します。 大枠を整理することが最大の目的です。細かい例外事項や拡張機能は適宜記載を割愛しています。 2022年9月時点の最新バージョンをベースに記載していますが、記載内容にバージョン依存は少ないはずです。 時間ができた時に随時追記予定です。 もし誤りを見つけた場合は、優しく教えていただけると嬉しいです。→ https://twitter.com/wrcsus4 or ryota.watabe at cosol dot jp 「主要RDBMS製品の比較」ページ一覧 アーキテクチャ, スキーマ,

    murasuke
    murasuke 2022/10/17
  • Spanner - Qiita

    これまで多くのトランザクションの要素技術を説明してきた。 Googleの公開している論文Spanner: Google's Globally-Distributed Database は公開当初、要求される専門技術の多さからよくわからないと言っている人が多かったが、これまでに説明した要素技術をベースにすると理解しやすい。 Spannerとは 複数のデータセンターに跨ってデータベースの内容を複製し続ける事で高い可用性を実現するという構想は数多くあった。 しかしそれらの分散データベースは実用的な速度を実現しようとすると、データモデルがただのRDBより単純化して使いにくかったりトランザクションをサポートしなかったりと、アプリケーションの一貫性を実現するのが難しい。 現にGoogleの社内でもBigtableなどを用いたアプリケーションは複数あるものの、それぞれでそのデータモデルの上で無理やりトラ

    Spanner - Qiita
    murasuke
    murasuke 2022/08/31
  • PostgreSQL Isolation について

    トランザクションのACID特性のうち、Isolation(隔離性)について整理する。 検証環境検証には、PostgreSQL 10.5を独自ビルドしたものを利用する。 (gdbでデバッグできるように最適化オプションを無効にした) 参考 PostgreSQL 9.4.4をソースコードからインストールする # select version(); version --------------------------------------------------------------------------------------------------------- PostgreSQL 10.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit (1 row) #

    PostgreSQL Isolation について
  • MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]

    株式会社ラクーンホールディングスのエンジニア/デザイナーから技術情報をはじめ、世の中のためになることや社内のことなどを発信してます。 bashパフォーマンスMySQLInnoDBDB設計インデックス こんにちは、羽山です。 今回は MySQL のプライマリキーに UUID を採用する場合に起きるパフォーマンスの問題を仕組みから解説します。 MySQL(InnoDB) & UUID のパフォーマンスについては各所でさんざん議論・検証されていますが、論理的に解説した記事が少なかったり一部には誤解を招くようなものもあるため、しっかりと理由から理解するための情報として役立つことができればと思っています。 UUID と比較される古き良き昇順/降順のプライマリキーはというと、 MySQL の InnoDB において良いパフォーマンスを出すために縁の下の力持ちのような働きをしてくれているケースが実は少な

    MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
  • RDBMS in Action

    RDBMS 理解度の壁: プロダクションや運用保守で困らないシステムを作れる知識 <<<それっぽく動くものを作れる知識 実際のシステムで遭遇・見聞きした事象をもとに、上記のスキマにある各種 RDBMS 知識を説明します。 RDBMS 体の運用よりも、現実のアプリケーションにおける設計・実装上のハマリどころが中心。

    RDBMS in Action
  • Laravelでトランザクション処理の方法をサンプル付きで解説 | 実践的Web開発メソッド

    今回は、Laravelでトランザクション処理を行う方法をサンプル付きでまとめました。 Laravelでトランザクション処理を行う方法は2つあります。 DBファザードのtransactionメソッドを利用する手動トランザクション(DBファザードのbeginTransaction, rollBack, commit を利用する)それぞれについてサンプルを交えてまとめました。 DBファザードのtransactionメソッドを利用するDBファザードのtransactionメソッドにクロージャーを渡し、その中でDBの更新処理を行います。 DB::transaction(function () { // 更新処理 }); サンプルとして、記事の情報・記事に関連するタグを同時に更新する場合だと、以下のようになります。 public function update (Post $post, Request

    Laravelでトランザクション処理の方法をサンプル付きで解説 | 実践的Web開発メソッド
  • MySQLコマンドまとめ - Qiita

    $ mysql -uroot # root でログイン $ mysql -u ユーザ名 -p Enter password: [パスワード] $ mysql -h xxx.xxx.xxx.xxx -u username -p # リモートアクセス

    MySQLコマンドまとめ - Qiita
  • 【MySQL】mysqldumpでテーブル構造だけ/データだけdumpする - MEMO REC

    他のサーバーにデータベースを移行する際に、テーブルの構造だけを保持したい場合やデータだけを移行したい場合には、以下の手順を利用することができます。これにより、スムーズなデータ移行が可能となります。詳細な手順は以下の通りです。 テーブル構造(スキーマ)のみを移行する DBにあるテーブル構造のみ全て取得する 特定テーブル構造のみ取得する データのみ移行する DBにあるデータ全て取得する 特定テーブル構造のみ取得する テーブル構造とデータの両方を移行する データベース全体のダンプを取得する例 特定のテーブルのダンプを取得する例 [スポンサーリンク] 顧客常駐はもう嫌だ!社内SEへ転職するなら【社内SE転職ナビ】 テーブル構造(スキーマ)のみを移行する DB内の全てのテーブル構造を取得するには、通常の mysqldump コマンドに --no-data オプションか -d オプションを追加します。

    【MySQL】mysqldumpでテーブル構造だけ/データだけdumpする - MEMO REC
  • 2020年現在のNewSQLについて - Qiita

    Disclaimer 当記事はNewSQL開発ベンダの技術ブログや各種論文、その他ニュースサイト等の内容を個人的にまとめたものです。 そのため、理解不足等に起因する誤解・誤認を含む可能性があります。更なる理解が必要な方はリファレンスに挙げた各種文献を直接参照下さい。技術的な指摘は可能であれば取り込み修正しますが、迅速な対応はお約束できません。 NewSQLの解説は二部構成 当記事は前編でNewSQLの概要編となる。 全体の目次は下記である。 NewSQLとは何か NewSQLのアーキテクチャ NewSQLとこれまでのデータベースの比較 NewSQLのコンポーネント詳解 1章から3章までの内容を当記事で解説する。 4章はさらに詳細な技術的解説となり、後編の「NewSQLのコンポーネント詳解」で記述している。 こちらも合わせて一読いただきたい。 1. NewSQLとは何か NewSQLとは、海

    2020年現在のNewSQLについて - Qiita
  • O/Rマッピングは百害あって一利なし! - Qiita

    O/Rマッピング(Object-relational mapping)について、Wikipediaには以下のように書かれています。 データベースとオブジェクト指向プログラミング言語の間の非互換なデータを変換するプログラミング技法である。 O/Rマッピングを実現する仕組みを、O/Rマッパーと言います。(両者を区別しなくても私が言いたいことは伝わると思いますので、ORMと統一して記述します)(また、個人的な理由で、プログラミング初学者向けに語りかける口調にしていますが、初心者向けの記事というわけではありません) 最近はWEBアプリ開発をするにあたって、WEBフレームワークに標準で何らかのORMが組み込まれていることが多いため、その存在を知らない人はまずいないでしょう。 私も何度かORMと向き合ってきましたが、そうこうしているうちに気がつきました。 ORMはめんどうくさい! …ってことに。 みん

    O/Rマッピングは百害あって一利なし! - Qiita
  • 3. データベースマイグレーション | densan-labs.net

    3.1. マイグレーションについて¶ データベースを削除してから作り直すと,DBに保存されている情報が全て削除されてしまいます. こういった事態を回避する方法として、データベースマイグレーションを行う方法があります。 マイグレーションとは、DBに保存されているデータを保持したまま、テーブルの作成やカラムの変更などを行うための機能です。 3.2. マイグレーションの準備¶ まずは簡単なデータベースマイグレーションを行うことにしましょう. あらかじめ,次のようなProductクラスを作成しておきます。 public class Product { public int ProductId { get; set; } public string Name { get; set; } public int Price { get; set; } }

    murasuke
    murasuke 2019/12/29
    マイグレーション
  • 1. Hello Code First | densan-labs.net

    1.1. Entity Frameworkのインストール¶ まず初めにEntity Framework(EF)のインストールを行いましょう. 今回利用するEFのバージョンは4.3.1です. EFをインストールするためには, あらかじめNuGet Package Managerをインストールしておく必要があります. NuGet Package Managerはメニューバーのツール内にある拡張機能マネージャ から簡単にインストールできます(図 nuget_install). NuGetのインストールが完了したら,次にEFのインストールを行います. EFはプロジェクト毎にインストールを行いますので,あらかじめプロジェクトを作成 しておいてください.次にメニューバーのツール,Library Package Manager,Manage NuGet Packages for Solutionを 選択

  • スキャフォールディング機能

  • SQL Server 物理設計のベストプラクティス(前編)

    EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

    SQL Server 物理設計のベストプラクティス(前編)
  • LocalDB で Northwind と Pubs を利用

  • 2017年データベースの選択は?(第3回) | db tech showcase

    TPCベンチマークで実行計画と処理時間を比較してみた 前回まで、機能の比較を行ってきましたが、机上で機能だけ比較してみてもデータベースの良さは分かりません。同じデータで同じSQLを実行してみてどのような実行計画でどのような処理時間になるのか?を調べてみたいと思います。実行する処理について特定のお客様で使用した処理では、客観性が無いことと処理内容を公開出来ないので、ここではTPCベンチマークを採用することにしました。 TPCベンチマークとは、TPC(Transaction Processing Performance Council)という組織が客観的かつ検証可能な性能データを広めるために策定したベンチマークテストです。そのベンチマークテストにはTPC-C / TPC-H / TPC-R / TPC-Wなどがあり、昔から有名なのは、更新性能(業務系システムを想定したワークロード定義)を計るT

    2017年データベースの選択は?(第3回) | db tech showcase
    murasuke
    murasuke 2019/05/24
    貴重なDB間のパフォーマンス比較。豊富なHDリソースがある今日ではIndexよりもHashJoinが利用されること、MySQLがNested Loopしかないことがネックになっていることがよくわかる。