タグ

dbに関するtaketsのブックマーク (73)

  • データベースを遅くするための8つの方法

    はじめに Twitterのタイムラインを見ていたらバッチ系のプログラムで逐次コミットをやめて一括コミットにしたら爆速になったというのを見ました。当たり前でしょ、と思ったけど確かに知らなければ分からないよね、と思って主に初心者向けにRDBを扱うときの注意点をまとめてみました。 プログラミングテクニック的なところからテーブル設計くらいの範疇でDBチューニングとかは入ってないです。 自分の経験的にOracleをベースに書いていますが、他のRDBでも特に変わらないレベルの粒度だと思います。 大量の逐次コミットをする バッチアプリケーションでDBにデータをインサートすると言うのはかなり一般的な処理です。しかしデータ量が少ない時はともかく大量のインサートを逐次コミットで処理するとめちゃくちゃ遅くなります。数倍から十数倍遅くなることもあるので、10分程度のバッチが1時間越えに化けることもザラにあるので原

    データベースを遅くするための8つの方法
    takets
    takets 2020/11/15
  • MongoDBの様なNoSQLに勢いがあるのは何故ですか?SQLと比べてどんな利点や欠点がありますか? - Quora

    回答 (3件中の1件目) ハイプサイクルという概念をGartnerグループが提唱してまして、様々な流行りスタリのサイクルを分析する標準的な方法となっています。 ハイプとは過度な期待や熱狂を意味する言葉です。一発屋芸人の人気のカーブみたいなもので、テツandトモみたいに安定する場合と、消えていくものがあります。芸人ではありませんがDA PUMPは一茶の人間性もありまして、次は厳しいけど定着すると思っています。 なんだかのトリガーで評価が上がり始め、ピークを迎える。その後評価が下がっていき、底を打つと少し上がって定着するという経過をたどるとしています。これと同じモデルで、流行りのハイテク...

    MongoDBの様なNoSQLに勢いがあるのは何故ですか?SQLと比べてどんな利点や欠点がありますか? - Quora
    takets
    takets 2019/08/28
  • データベースオブジェクトの命名規約 - Qiita

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

    データベースオブジェクトの命名規約 - Qiita
  • 最近アプリケーションの設計するときに気をつけてること - suusan2号の戯れ

    最近、機能の設計をレビューしたり話し合ったりするときに、うん・・・?ってなることがあって、でも駄目な理由をうまく説明できなかったのでちゃんと言語化してみる。ちなみにRailsの話です。 DBには事実だけを記録するようにする 色々開発してきて思ったのは、テーブルに状態を持たせるようにするとあっという間に複雑度が増してしまうということ。 status カラムや hoge_flag みたいなカラムを持つこと自体は全然否定しないけど、当にそれが最適なのかは慎重に考えた方がよいと思う。 これは例ですけど、会員申し込み => 何か審査 => 会員登録完了 みたいなフローのアプリケーションを作る時に、会員情報のテーブルを1つだけ作りstatus 、approved_at みたいなカラムを突っ込んで、申し込み状態と申込み完了状態を アプリ側で頑張って判定しようとしている例はまれによくある。 こうすると何

    最近アプリケーションの設計するときに気をつけてること - suusan2号の戯れ
    takets
    takets 2019/01/31
    DBには事実だけを記録するようにする
  • MySQLからPostgreSQLへの移行とDBリファクタリング/postgresqlJapan2018 - Speaker Deck

    2018-11-22 に行われた PostgreSQL Conference Japan 2018 のスライドです!

    MySQLからPostgreSQLへの移行とDBリファクタリング/postgresqlJapan2018 - Speaker Deck
  • PHP製マイグレーションツール Phinx の動作検証 - Qiita

    はじめに 以前 DBマイグレーションツールを比較した phpmig, migrate, goose の記事を書きましたが、どのツールも満足がいかずツール選定は保留状態のままでした。しかし最近PHP製のPhinxというツールが良いという情報を見かけ、ドキュメントを見た所、かなり良さそうだったので検証したいと思います。 Phinx とは Phinx はPHP製のデータベースマイグレーションライブラリです。公式サイトとドキュメントを読んで受けたメリット・デメリットは以下でした。 メリット CakePHP公式マイグレーションツールでありながら、独立したコマンドラインツールとして利用可能 インストールが簡単 簡単なコマンドライン操作 Star数 3200超え 充実したドキュメント デメリット 要学習コスト(そこまで難しくはないと思います マイグレーションツールに求めるもの 個人的にマイグレーションツ

    PHP製マイグレーションツール Phinx の動作検証 - Qiita
    takets
    takets 2018/10/26
  • ユーザ情報を保存する時のテーブル設計 - そーだいなるらくがき帳

    はじめに ※この発言は個人の見解であり、所属する組織の公式見解ではありません 用法用量を守り、個人の責任で業務に投入してください 参考資料 2024/02/14追記 実際のテーブル設計の詳細はこちらを参考にどうぞ。 agilejourney.uzabase.com 要件 User情報を保存するときにどのようなテーブル設計を行うか 今北産業で頼む テーブルに状態を持たせず状態毎のテーブルを作る 状態が変わればレコードを消して別のtableに作る tableの普遍的な情報は別に持たせる 僕の考えた最強のDB設計 PostgreSQLをベースの雑なER図を作った。 これを元に話を進める。 table構成 users 親tableであり、すべてのユーザはここに属する。 基はINSERTのみでUPDATE、DELETEを考慮しない。 user_detail userに付随する詳細の情報がここに登録

    ユーザ情報を保存する時のテーブル設計 - そーだいなるらくがき帳
    takets
    takets 2018/10/11
    今は10%も理解できてないので、保存して必要になったら読み返す。
  • download

    DBeaver Community 24.3.3 Released on January 19th 2024 (Milestones). It is free and open source (license). Also you can get it from the GitHub mirror. System requirements. DBeaver PRO 24.3 Released on December 16th, 2024 PRO version website: dbeaver.com Trial version is available. Windows Windows (installer) Windows (zip) Chocolatey (choco install dbeaver) Install from Microsoft Store Mac OS X Mac

    takets
    takets 2018/09/28
    windowsの良さそうなクライアント
  • TeamSQL - Cross-platform SQL Client Built for Collaboration

    Looking for an Amazon Redshift client? TeamSQL has retired and is not available for download anymore. You can The world's first and the only query and management tool built for Amazon Redshift. Get DataRow for Amazon Redshift Hello, TeamSQL has been a great platform to experiment with modern UI and powerful features to help you manage your popular databases with collaborative features. Over two ye

    TeamSQL - Cross-platform SQL Client Built for Collaboration
    takets
    takets 2018/09/26
    windowsでも使えそうなsequel Pro
  • つらくないマルチテナンシーを求めて: 全て見せます! SmartHR データベース移行プロジェクトの裏側 / builderscon 2018

    つらくないマルチテナンシーを求めて: 全て見せます! SmartHR データベース移行プロジェクトの裏側 / builderscon 2018

    つらくないマルチテナンシーを求めて: 全て見せます! SmartHR データベース移行プロジェクトの裏側 / builderscon 2018
  • RDB THE Right Way - builderscon 2018/ RDB_THE_Right_Way

    buildersconでの登壇資料です。 https://builderscon.io/tokyo/2018/session/ddba9bd5-819e-489e-9123-04d2291d506e 当日の動画は後ほど上記のリンク先で公開されます。

    RDB THE Right Way - builderscon 2018/ RDB_THE_Right_Way
    takets
    takets 2018/09/05
  • データベース論理設計のアンチパターン - 夜は寝る

    おはこんばんちは。 がんばってブログを書きたいので、ちょうどいま読んでいるSQLアンチパターンというを、噛み砕いて離乳くらいの柔らかさにして晒してみます。すでに読んだ人はいますぐそっ閉じ、まだ読んでない人は、こちらも同様にそっ閉じしてお風呂に入ってすぐ寝ましょう。 SQLアンチパターン 作者: Bill Karwin,和田卓人,和田省二,児島修出版社/メーカー: オライリージャパン発売日: 2013/01/26メディア: 大型購入: 9人 クリック: 698回この商品を含むブログ (45件) を見る かなり圧倒的に当たり前のことしか書いてないんですけど、そういうこそが良書だっておじいちゃんの息子の息子が言ってた気がします。 アンチパターンが全部で25個、カッチョイイタイトルとともに紹介されています。「目的」「アンチパターン」「解決策」をそれぞれ示します。書だと、「アンとパターンを

    データベース論理設計のアンチパターン - 夜は寝る
  • 基本用語の解説付きインデックス・チューニング入門 - KitchHike Tech Blog

    B-Tree・カーディナリティ・実行計画・オプティマイザ・プロファイラ データベースのインデックス・チューニングで出てくる用語は、O/Rマッパーに慣れていると聞きなれない言葉かもしれません。 記事では用語を解説しながら、RailsとMongoidでのインデックス・チューニングの一歩として基的な手順をご紹介します。 はじめに こんにちは。KitchHikeエンジニアの小川です。 Railsのようなフルスタックフレームワークを使っていると、データベースを気にする機会はだいぶ減るのではないでしょうか。ActiveRecordのようなO/Rマッパーが上手く抽象化してくれるおかげで、生のSQLを書く必要はほとんどなくなりました。 一方でその抽象化は、データベースを見えにくくしているともいえます。データベースを直接見る機会が減ってしまうことで、知らず知らずのうちにトラブルの原因となっていることも少

    基本用語の解説付きインデックス・チューニング入門 - KitchHike Tech Blog
    takets
    takets 2018/06/01
    インデックスのチューニングのやり方
  • 複合主キーを避けるべき理由 - 虎塚

    データベース設計の話をしていて、「連番の主キーは業務上意味のないデータだから、テーブルに持たせるのはムダだ。複合主キーにするべき」という意見を聞く機会がありました。 脊髄反射で「ないわー」と思ったものの、理由を上手く説明できなかったので、改めて考えてみました。 その結果、次のような結論に至りました。 単一の連番カラムによる主キーと、複合カラムによる主キーとで迷ったら 実装をシンプルにし、業務変更の影響範囲を小さくするために、複合主キーを避ける というわけで、調べたことや考えたことをメモしておきます。# 間違っている部分があれば、教えていただけると嬉しいです。 (2011/07/25 追記)複合主キーとサロゲートキーについては、要件やシステムに依存して多様な判断がありうると思います。にもかかわらず、「避けるべき」というタイトルにしたのは極端でした。申し訳ありません。ご指摘下さった皆さん、あり

    複合主キーを避けるべき理由 - 虎塚
    takets
    takets 2017/07/11
    phpのwafから入るとサロゲートキーが常識になっているから、そこから先を考えたことすらなかった。いかんなぁ。
  • サロゲートキーと複合主キー | DBFlute

    一方で、Webサービス系などで論理設計と物理設計をもう一緒くたにやっていくような場合は、 正規化の論理に目の前にあるサロゲートキーを含めないようにすることが大切で、モデリングはナチュラルキーを基軸に考えていくとよいでしょう。 サロゲートキー (代理キー) サロゲートキー + (複合)ユニーク制約 ナチュラルキーをPKにせず、例えば連番となるようなカラムを用意して、それをPKにします。 これがサロゲートキーと言われるものですが、ナチュラルキーには別途ユニーク制約を付与する というのを忘れてはいけません。 ここでは、ナチュラルキーにユニーク制約を付けずにサロゲートキーだけを導入する方式は、業務的・実装的に意味はないと考え、ここでは取り扱いません。 議論の対象にすらしません。ユニーク制約を付けることで業務的なユニーク性を保ちつつサロゲートキーの恩恵を得ることができ、同時にナチュラルキーを明示する

    takets
    takets 2017/07/11
    よくまとまっている。基本的には複合主キーを避けたほうが無難そうか
  • アーキ部:テーブル設計をやってみよう! - そこに仁義はあるのか(仮)

    毎週金曜の定時後に弊社でアーキ部なるものが開催されています(✌'ω' ✌) スピードラーニング的に@kawasimaさんのお話を聞く会ですが、今週はテーブル設計がテーマでした! この記事がすごく良かったので、触発されてブログ書く!!! developer.hatenastaff.com お題 ↓のお題が出て、テーブル設計を考えてみるはなし。 要求仕様は以下のとおり。 ・宿の部屋は、シングルやツインのような部屋タイプが設定できます。 ・宿側で宿泊プランを設定できます。宿泊プランは適用される日付が設定できます。 ・プランには複数の部屋タイプが含まれることがあります。 ・宿側でプラン・部屋タイプ・宿泊日ごとに宿泊費の設定ができます。 ・カスタマはプラン・部屋タイプ・宿泊日を指定して宿泊予約ができます。 ・予約は会員でも非会員でも可能です。 ・また、会員・非会員に関わらず、宿をお気に入りに登録でき

    アーキ部:テーブル設計をやってみよう! - そこに仁義はあるのか(仮)
  • PHPのORM、idiormを試す - 大阪のWordPress・Web制作とCMS開発のパンブリュット

    Webサイト制作/CMS開発/システム開発のご相談 CMS構築のパートナー/Webシステム開発技術者をお探しの方 社内システムご担当者さま/アートディレクター・Webデザイナーさま Webでの営業戦略、社内業務改善へのWebシステム活用に関する課題について 是非一度お問い合わせください。 クリスマス、忘年会も終わり、いよいよ年の瀬。バックアップを取りながら、今年の反省と来年の楽しみを探しだすのは、掃除をするより重要です・笑 今年もたくさんの技術が出現し、定着し、次々に新しいサービスが生まれました。 めまぐるしいインターネット社会に、最高尾からでも付いて行きたいと考えさせられた一年でした。なにか「パチン」と音が鳴ったような、そんな2015年。 HTML5 + CSS3、スマートフォン対応も定着し、レスポンシブデザイン、SSL通信の基化推進。もはやCMS無しでは語れないWebサイト運用とパワ

    PHPのORM、idiormを試す - 大阪のWordPress・Web制作とCMS開発のパンブリュット
    takets
    takets 2016/01/02
    joomlaで使えそうなorm, templateエンジンとか
  • 窓の杜 - 【NEWS】SQL文をGUIで作成できるフリーのデータベース開発環境「黒猫 SQL Studio」

    GUIによるSQL文の作成など、さまざまな開発支援機能を備えるSQL開発環境「黒 SQL Studio」v1.1.7.413が6月4日に公開された。Windows 2000/XPに対応しており、個人使用・業務にかかわらずフリーソフトとして利用可能。現在作者のホームページからダウンロードできる。 「黒 SQL Studio」は、SQL文の作成やテストを行える汎用のデータベース開発環境。ソフト上からOLE DB接続またはODBCドライバに対応する各種データベースへ直接接続可能で、作成したSQL文を実際にテスト実行できる。画面は3ペイン構成で、左側には複数のSQLソースファイルを管理できるファイラー、中央には複数ファイルをタブで切り替えて表示できるエディター、右側には接続したデータベースの構造をツリーとリストで表示する“データベースエクスプローラ”が表示される。 SQL文の作成時は、さまざ

  • O/Rマッパーによるトラブルを未然に防ぐ

    2. copyright © 2014 kuwata-lab.com all rights reserved まえがき 現在、アプリケーション開発の現場では O/R Mapper (ORM) が普及しています。今後 も ORM を使った開発は、増えることはあっても減ることはないでしょう。 しかし ORM は、アプリケーション開発者にとっては便利でも、DB 管理者 (DBA) か らみたらトラブルの種でもあります。それが特にパフォーマンスに関する問題であるこ とが多いため、開発者と DBA が対立することも珍しくありません。 とはいえ、ORM による問題はすでに解決策が用意されている場合があります。当の 問題は、すでに存在する解決策があまり知られていないことではないでしょうか。 そこで発表では、ORM によってどのような問題が起こりやすいか、どう解決・予防 すればいいか、そして ORM

    O/Rマッパーによるトラブルを未然に防ぐ
    takets
    takets 2015/07/16
  • 第15回 スキーマ|オススメ!OSS-DB情報|OSS-DB道場|受験対策|DBスペシャリストを認定する資格 OSS-DB技術者認定試験

    データベースを知らない人、あるいは学習を始めたばかりの人にとって、スキーマ(SCHEMA)はあまり耳慣れない言葉かもしれませんが、データベース管理において重要な概念です。 データベースをOSに例えてみると、データベース内に作成したテーブル(表)は、OSが管理するディスク上に作成されたファイルに相当します。OSで多数のファイルを作るとき、ファイルの種類、目的、所有者などに応じて複数のディレクトリ(フォルダ)に分けて保存する、というのが普通です。データベースでも、多数のテーブルを作るときに、テーブルの目的や所有者に応じて格納場所を別にすることで、分類できます。そのための仕組みがスキーマです。 データベースのスキーマは、OSのディレクトリとよく似た性質を持っています。 テーブルなど、すべてのオブジェクトは、何らかのスキーマに所属します。これは、OSのファイルが、何らかのディレクトリに所属するのと

    takets
    takets 2014/03/05