タグ

dbに関するArahabicaのブックマーク (60)

  • 外部キー制約が一切ないと何に困るのか?

    こんにちは。株式会社プラハCEOの松原です 注目を集めつつあるMySQLプラットフォームのPlanetScaleですが、外部キー制約が効かないという一見致命的に見える仕様について調べていたところ、こちらのDiscussionで興味深い回答が開発者から寄せられていたので日語でまとめ直してみようと思いました。 外部キー制約がなくてもそれほど困らない理由 今回の話はParentテーブル(id)とChildテーブル(id,parent_id)を前提に考えていきます そもそも外部キー制約は何に役立つのか 今回のDiscussionでは質問者から「外部キー制約がないとこういう時に困るよ!」と質問が寄せられています: 外部キー制約がないと参照先のデータが存在していることを保証できない! 外部キー制約がないとデータの重複を回避できない! それぞれの質問に対して回答者の回答は以下の通りです: 外部制約がな

    外部キー制約が一切ないと何に困るのか?
    Arahabica
    Arahabica 2024/09/10
  • マルチテナントアーキテクチャについて - コンポツさん

    SaaSシステムを開発しているみなさま、お元気でしょうか。 SaaSシステムというといわゆるWebサービスよりももう少しBtoBの雰囲気が漂ってまいります。 SaaSシステムでは契約者(ここではテナントと呼ぶ)が複数いて、テナント毎に複数のログインユーザーやロールが存在するのが一般的です。そして当然ながらテナント毎のデータは漏洩・混濁が許されない高いセキュリティが求められます。 SaaSシステムの構築はスケーラビリティにおいても100テナント程度から始まりゆくゆくは数千、数万テナントまで少なくとも線形にスケールするアーキテクチャを開発当初から求められ、さらに突発的な大規模テナントも問題なく吸収したいという要求があります。 その要求を満たす設計・開発・保守・運用をやっていくのは当然ながら簡単ではありません。 というわけで今日はマルチテナントアーキテクチャのお話です。 世に出る情報がとっても少

    マルチテナントアーキテクチャについて - コンポツさん
    Arahabica
    Arahabica 2021/03/17
  • ER図を書くのに疲れたら - Qiita

    はじめに 新規開発/保守開発 にかかわらず、システム開発時にデータ構造を把握することは非常に大事です。 データ構造の把握に有意義なものとして ER図(E-R Diagram) があげられます。 ER図作成で悩むこと ドキュメントとプログラムは 「乖離」 する 非常に有益な ER図 ですが、ドキュメントの類に漏れず 実体(プログラム)との乖離 が発生します。 「乖離」 を避けるために、定期的に同期を撮ろうとしますが、全てのメンバが常に鮮明な意識で開発に挑めるわけではありません。ドキュメントは荒廃していきます。 ドキュメントとデータベースも 「乖離」 する ドキュメントとプログラム だけでなく、 ドキュメントとデータベース も乖離します。 すでにサービスとして可動しているデータベースの定義(テーブル、インデックス、ビュー) と ドキュメント が乖離しているということです。 サービスインしている

    ER図を書くのに疲れたら - Qiita
    Arahabica
    Arahabica 2020/04/29
    “schemaspy ”
  • 【さらばER図設計作業】docker-composeで「SchemaSpy」でデータベースのドキュメントを自動生成するやり方【DBリバースエンジニアリング】

    【さらばER図設計作業】docker-composeで「SchemaSpy」でデータベースのドキュメントを自動生成するやり方【DBリバースエンジニアリング】

    【さらばER図設計作業】docker-composeで「SchemaSpy」でデータベースのドキュメントを自動生成するやり方【DBリバースエンジニアリング】
    Arahabica
    Arahabica 2020/04/29
  • CAP定理を見直す。“CAPの3つから2つを選ぶ”という説明はミスリーディングだった

    分散システムにおいては以下の3つの要素のうち2つしか同時に満たすことができない、というCAP定理を提唱したのは、Eric Brewer氏でした。 C:Consistency(一貫性) A:Availability(可用性) P:Tolerance to network Paritions(ネットワーク分断への耐性) 一般にリレーショナルデータベースでは、一貫性(C)と可用性(A)をできるだけ保証する代わりに、ネットワーク分断への耐性(P)を犠牲にしています。ネットワークが途中で切れたり大きく遅延した場合、動作が保証されなくなってしまうわけです。 一方でNoSQLでは一貫性(C)よりも可用性(A)とネットワーク分断への耐性(P)を優先させるものが多く、分散システムでの動作に向いていると説明されます。このようにNoSQLの説明にこのCAP定理がしばしば引用されることになり、NoSQLの普及とと

    CAP定理を見直す。“CAPの3つから2つを選ぶ”という説明はミスリーディングだった
    Arahabica
    Arahabica 2019/06/20
  • Firestore導入前に知ってほしい。3層に分解して、メリット・デメリット比較と使いどころを考える - Qiita

    はじめに Firebase Cloud Firestoreは個人的に非常に期待しているサービスです。Firestoreは従来のモバイルアプリ開発の3層の概念を統合したサービスだと感じています。 例えばデータ同期するモバイルアプリを作る場合、以下が相当します。 クラウドDB (ex. MySQL) API/WEBアプリケーション (ex. Ruby On Rails) モバイルDB (ex. realm) この3層を一手に引き受けてくれるのがFirestoreの存在です。これらの開発をしないで済むなら「神」のような存在ですよね。 当にFirestoreは神サービスなのか? 私の答えは**「NO」**です。 それでもとても強力で素晴らしいサービスであることは間違いないです。どんなメリット・デメリットがあるのか3層の観点からそれぞれ考えてみました。導入する前に当にFirestoreを使ってよ

    Firestore導入前に知ってほしい。3層に分解して、メリット・デメリット比較と使いどころを考える - Qiita
    Arahabica
    Arahabica 2019/06/19
  • 銀行コード検索

    ホーム 銀行コード検索 市区町村コード検索 郵便番号検索 事業所郵便番号検索 2025年6月28日 データ一部修正しました。 修正内容 金融機関を選択してください 金融機関コード半角4桁 ←検索上位10件を登録できます。 間違いなどがあればメールを頂けると幸いです。角谷 宛 銀行・支店全データダウンロード(重複なし)   旧データ 全データダウンロード(重複なし)・zip形式 5番目の項目は名称区分 1:銀行名称 2:支店名称 「母店」と「出張所」のコードが同一の場合において「並びコード」を追加して対応しました。 銀行・支店全データダウンロード   旧データ 全データダウンロード・zip形式 5番目の項目は名称区分 1:銀行名称 2:支店名称 6番目の項目は並びコード 1:重複なしor母店 2~:出張所

    Arahabica
    Arahabica 2019/03/01
  • RDSのフェイルオーバーとJDBCコネクションプーリングでハマった件 - なからなLife

    フェイルオーバー発生させたら、15分固まった。 Amazon RDS MySQL 5.6.23+Tomcat+JavaServlet+Connector/Jでコネクションプールを利用した環境で、RDSのフェイルオーバー試験をするべくManagement Consoleから「Reboot with Failover」を発生させたら、フェイルオーバーは数分で完了して他の新規接続も受け付けられているのに、前から接続していた分が固まってしまいました。 フェイルオーバーが始まった直後に投げたリクエストのあと、うんともすんとも言わない。 JDBCのconnectTimeoutは3秒にしてあって、SecurityGroupの設定ミスなどでつながらない場合は5秒でタイムアウトすることは確認済みなのに、このケースではお返事が帰ってこない。。。 ぐぐっても、新規接続時のタイムアウト(connectTimeou

    RDSのフェイルオーバーとJDBCコネクションプーリングでハマった件 - なからなLife
    Arahabica
    Arahabica 2017/10/09
  • OTN Japan マニュアル

    門外不出のOracle現場ワザ 第5章 DBアクセスの空白地帯 コネクションプーリングを極める 日オラクル株式会社 コンサルティング統括テクノロジーコンサルティング部 小田 圭二(おだ けいじ) 目次 Part1  DB接続のパフォーマンスと管理性を最大化するコネクションプーリングの仕組み コネクションとは? 接続するタイミング コネクションプーリングの構成要素 コネクションプーリングに付随する技術 共有サーバー構成 OCIコネクションプーリング Part2  Java &.NETで使えるコネクションプーリング究極の選択 Javaにおけるコネクションプーリング コネクションプーリングの選択基準 コネクションプーリングの実装の紹介 コネクションプーリングの切り替え .NETのコネクションプーリング おわりに Part1 DB接続のパフォーマンスと管理性を最大化するコネクションプーリン

    Arahabica
    Arahabica 2017/10/09
  • MySQL RouterでRDSのReplicaを負荷分散してみる | DevelopersIO

    ウィスキー、シガー、パイプをこよなく愛する大栗です。 MySQLAuroraでRead Heavyな環境だとだとRead Replicaを多数用意すると思います。多数のRead Replicaを効率的に使用するためにはリクエストの負荷分散が必須です。MySQLの負荷分散を行うためのプロダクトはいくつかありますが、今回はMySQL Routerを試してみました。 MySQL Router MySQL Router プロダクトのページにトップには、以下の様な記載があります。透過的なルーティングと言うことで、MySQLに接続するつもりでMySQL Routerに接続すれば良いということです。 MySQL Routerはアプリケーションと任意のバックエンドのMySQLサーバー間の透過的なルーティングを提供する軽量のミドルウェアです。データベースへの接続を適切なバックエンドのMySQLサーバーへ効

    MySQL RouterでRDSのReplicaを負荷分散してみる | DevelopersIO
  • Amazon Auroraを始めるためのパラメータ資料 | 外道父の匠

    Auroraがそこそこ浸透してきたように感じなくもないですが、そのわりに情報がまだ少なめなのは、それだけ従来のMySQLと変わりなく扱え、性能も十分満足いくものだろう、という証なのでしょうか。 中の人も、パラメータチューニングは済んでいるので、基的にはスケールアップで対応してください、と申しているように、かなり良い調整がされているようです。しかし、インフラエンジニアというかエセDBAたるもの、何がどう調整されているかを具体的に確認しなくては気がすまないため、整理してみたわけです。 デフォルトの設定 パラメータグループについて Auroraのパラメータは従来と異なり、ノード毎の設定である『DB Parameter Group』と、クラスタ内共通の『DB Cluster Parameter Group』の2つに設定が分かれます。 必要に応じてクラスタの方に、文字コードやレプリケーション周りな

    Amazon Auroraを始めるためのパラメータ資料 | 外道父の匠
  • 誰でも簡単に超高速なクエリができるBigQueryとは?

    この2つの技術は、グーグル独自の技術というわけではない。しかし、ハードウェアから構築している、既存のグーグルのクラウド技術を活用し、パブリックなクラウドサービスとして提供可能なレベルの実装になっている点がGoogle BigQueryの強みとなっている。 BigQueryの特徴 他の類似サービスとの比較 巨大データを処理する技術としては、同じグーグルが使ってきたMapReduceというものがある。MapReduceとBigQueryを比べると、MapReduceが巨大なデータを安定的に処理できるプログラミングモデルであることに対し、BigQueryはアドホックにトライ&エラーしながらクエリを実行するサービスであることが異なっている。 MapReduceは、非構造化データを、プログラミングモデルを通して扱うことができ、巨大なテーブルの結合や巨大な出力結果のエクスポートも可能である半面、処理時

    Arahabica
    Arahabica 2017/04/07
  • MySQLリモートDBの結果をローカルCSVファイルに出力する方法 | 開発メモるアル

    MySQLのデータをCSVファイルに出力したい場合、 SELECT … INTO OUTFILE 構文を使うのがよくあるパターンなのですが、 DBサーバーがリモートホスト上にある場合はこの方法が使えません。 CSVファイルに出力するコマンド このコマンドで、リモートDBの結果をローカルCSVファイルに出力できます。 構文 mysql -u [ユーザー名] -p -h [DBサーバーホスト名] [DB名] -e "`cat [実行SQLファイル名]`" | sed -e 's/\t/,/g' > [出力CSVファイルパス] 実行例 $ mysql -u test -p -h dbhost testdb -e "`cat outcsv.sql`" | sed -e 's/\t/,/g' > /tmp/test.csv いろいろ調べた結果たどり着いたのが以上の方法です。 理由とか気にならない人は

    Arahabica
    Arahabica 2017/03/22
  • MySQLのSELECT文でcsvを出力する - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    MySQLのSELECT文でcsvを出力する - Qiita
    Arahabica
    Arahabica 2017/03/22
  • HAProxyでPostgreSQLを負荷分散する(デモ動画あり)

    PostgreSQLにレプリケーション機能が標準機能として入ってしばらく経ちました。 PostgreSQLでもレプリケーション機能がいろいろなところで使われるようになってきた最近ですが、以前から気になっていたこととして、「L4のロードバランサでPostgreSQLの負荷分散ができないのだろうか?」という素朴な疑問がありました。 ずっと試してみたいと思っていたのですが、ようやく今回 HAProxy を用いることで動作させることができましたので、その方法を簡単にご紹介します。 ■「L4のロードバランサ」とは 「L4(Layer4)ロードバランス」とはTCP層におけるロードバランスのことです。L4のロードバランサは、アプリケーションごとのセッションの内容には関係なく、TCP層の情報だけを使ってロードバランスを行います。 ネットワークのロードバランスには、L4以外にもL7のロードロードバランサもあ

    HAProxyでPostgreSQLを負荷分散する(デモ動画あり)
    Arahabica
    Arahabica 2017/02/23
  • AmazonLinuxでHAProxy1.6.6をrpmビルド - Qiita

    HAProxyが1.6.6になって動的名前解決がサポートされた。 RDSでHAProxyを使う場合、1.5以前ではMulti-AZフェイルオーバ発生時やインスタンスの再作成にはHAProxyを再起動する作業が必要だった。 1.6.6は動的名前解決が出来るのでそこに懸念する必要が無くなる。 20160711現在のAmazonLinuxの標準yumリポジトリでは1.5.2までしか公開されていない。 Fedora24ではRPMが公開されてる。 https://www.rpmfind.net/linux/RPM/fedora/updates/24/x86_64/h/haproxy-1.6.6-2.fc24.x86_64.html AmazonLinuxのRPMとFedora24のRPMをマージしてビルドするのに成功したので手順を残す。 なお、HAProxy 1.6系からサポートされているluaには

    AmazonLinuxでHAProxy1.6.6をrpmビルド - Qiita
    Arahabica
    Arahabica 2017/02/23
  • Amazon RDS~リードレプリカ編パート①~

    こんにちは!Rookieです。 今回はリードレプリカについてということで2回にわたってお話していきたいと思いますが、その前にAmazon RDSに関する情報をご紹介します! 先日、AWSの方でAmazon RDSのエンドポイント名が変更可能になったと発表されました。 これにより、既存のDBインスタンスが何らかの理由で使えなくなった場合でも、新しく作成したDBインスタンスの名前とエンドポイントを既存のそれに変更することができますので、アプリケーション内でエンドポイントを更新する必要がなくなります。 より細かな部分まで設定ができるようになり、便利な点が増えることは嬉しいことですね! さて、ここから題に入りまして、今回はリードレプリカの概要および利用目的と作成方法について記述したいと思います。 そもそもリードレプリカというのは、読み込み専用として利用することができるマスターの複製データベースに

    Arahabica
    Arahabica 2017/02/18
  • 第5回 Elasticsearch 入門 Elasticsearch の使いどころ | DevelopersIO

    今回は少し、思考を変えてシステムを開発する際にどんなところで Elasticsearch を使えるのか?という視点で説明したいと思います。 最近のシステムの特徴 最近のシステムは、ビッグデータの重要性の認知、ソーシャルデータの活用など、1つのシステムでも様々な種類のデータを管理し活用するようになってきました。また、クラウドサービスやオープンソースが当たり前に使われるようになり、データを管理し活用するためのシステムやサービスも様々な選択肢があります。 そのため、最近のシステムではデータの利用目的によってデータストアを使い分けることが多くあります。 例えば、商品情報など構造化されたデータは、ビジネス要件を満たすためにデータを矛盾なく永続化する必要があるため、MySQL などのリレーショナル・データベースに保存されます。 また、更新や参照トラフィックが多くデータ数も多いゲームやモバイルアプリケー

    第5回 Elasticsearch 入門 Elasticsearch の使いどころ | DevelopersIO
    Arahabica
    Arahabica 2016/12/18
  • Mac へ MySQL を Homebrew でインストールする手順 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Mac へ MySQL を Homebrew でインストールする手順 - Qiita
    Arahabica
    Arahabica 2016/12/07
  • [新機能]Amazon RDSで日本時間が使用可能になりました! | DevelopersIO

    ウィスキー、シガー、パイプをこよなく愛する大栗です。 私の好きなサービスとしてAmazon RDSがあります。大好きなサービスなのですが、一つだけ大きな不満がありました。それはOracle以外タイムゾーンがUTC固定であることでした。 しかし、日のアップデートにより、MySQLとMariaDBでタイムゾーンを変更できるようになり、日時間を設定できるようになりましたのでご紹介します。 今までのタイムゾーン変更 今までRDS for MySQLでタイムゾーンを変更する方法といえば、『RDS(MySQL)でJSTを使う たった1つの冴えたやり方』を使う方法がテッパンでした。 これは、init_connect に「RDSの管理ユーザ(rdsで始まるユーザ)以外の場合にタイムゾーンを設定する」ストアドプロシージャを設定するという方法です。 これからのタイムゾーン変更 DBパラメータグループで t

    [新機能]Amazon RDSで日本時間が使用可能になりました! | DevelopersIO