タグ

dbに関するarikuiのブックマーク (12)

  • Postgres と MySQL における id, created_at, updated_at に関するベストプラクティス

    読者対象 ある程度データベースに関する知識を持っている,経験年数 1 年以上のバックエンドエンジニア 特定のプログラミング言語に依存する部分は含めないため,すべての SQL 使用者を対象とする また,ゼロからの丁寧な説明というよりは,リファレンス感覚で使える記事という形にまとめる。 RDBMS の対象バージョン PostgreSQL: 9.4 以降 MySQL: 8.0.28 以降 id (データ型と INSERT 時のデフォルト埋め) 導入 一般的に採用されやすいプライマリキー用の値として,以下を考える。 連番整数 MySQL では AUTO_INCREMENT, Postgres では IDENTITY や SERIAL と呼ばれるもの UUID v1: ハードウェアごとにユニークな単調増加値 UUID v4: ランダム値 UUID v7(ドラフト): 単調増加であるタイムスタンプとラ

    Postgres と MySQL における id, created_at, updated_at に関するベストプラクティス
  • RDBのデータモデリング・テーブル設計の際に参考にしている考え方と資料

    はじめに タイトルのとおり、RDBのデータモデリング・テーブル設計を行う際に参考にしている考え方と関連資料をまとめました。 P.S. なんと記事内でいくつか参考として挙げさせてもらっている増田さん・かとじゅんさん・奥野さん・そーだいさんからコメントいただくことができました。 当にありがとうございます。 前提 RDBを採用するのは事実を無駄なく正しく記録するため 正規化、トランザクション、制約とデータ整合性 基的には始めに理想として集合論・リレーショナルモデルに基づいて正規化を考え(論理設計)、パフォーマンスなどの現実問題に対して折り合いをつけていく(物理設計) 制約を最大限利用する cf: ↑P91〜 ↑P.29,41 ↑P56〜 ↑5章 ↑P347~ 情報とデータ データ:単なる事実の値→これを永続化して蓄えるものがRDB 情報:データから生み出される意味や目的のあるもの→RDB

    RDBのデータモデリング・テーブル設計の際に参考にしている考え方と資料
  • PostgreSQL 9.xにおける日本語全文検索について調べてみた - longkey1's blog

    調べた経緯 データベースの内容を全文検索したいという要望は定期的にあるので、常に情報は探しているんだけど、PostgreSQLに関しては調べたことなかったので色々調べてみた。 Senna Senna 組み込み型全文検索エンジン - Senna 組み込み型全文検索エンジン これがスタンダードだった時期もあるんだろうけど、結局PostgreSQL9.x系にインストール出来なかった。 textsearch_sennaを使って動かそうとしたんだけど、そもそも公式サイトで配布されている圧縮ファイルをダウンロードしても、ちゃんとインストール出来ない。 CVSでソースコードをダウンロードして・・・という手順だと動くとMLに書かれていたので、チャレンジしてみたけど結局ダウンロード出来なかった。 ダウンロード出来たとしても、Senna体が2010年からリリースされてないみたいだから、はっきりいって今更感が

  • Big Sky :: 組み込み版 NoSQL、「UnQLite」

    これまで組み込みDBだと SQLite が一般的でしたが、ローカルであっても NoSQL したい、組み込みで使いたい、というニーズはあるかと思います。 そんな場合、UnQLite を使うと便利そうです。 UnQLite - An Embeddable NoSQL Database Engine UnQLite is a self-contained C library without dependency. It requires very minimal support from exte... http://unqlite.org/ unqlite/unqlite - GitHub README.md UnQLite UnQLite is a in-process software library which implements a self-contained, server...

    Big Sky :: 組み込み版 NoSQL、「UnQLite」
  • パフォーマンス比較 Cassandra、Mongodb、SQLite、H2、MySQL、Postgres - cypher256's blog

    下記のようなシステムでパフォーマンスが良さげな SQLite を使用予定ですが、もっと速いものが無いか確認のため他のデータベースのパフォーマンスを計測してみました。SQL 利用前提ですが、NoSQL が圧倒的な性能を出す場合は検討する必要があるので KVS も確認しました。 データ件数は 1 億件程度、JDBC SQL 利用可能 INSERT、UPDATE はバッチ SELECT は主キーアクセス性能を重視 将来スケールアウトのための分散はありえるが、スタンドアロンで遅いのはだめ データベースのパフォーマンス比較 計測したデータベース データベース名 タイプ 形態 評判 計測についての備考 SQLite RDB 組み込み ※2 おもちゃ、Android標準 JDBC操作 ※1 H2 RDB 組み込み ※2 組み込み最速 JDBC操作 ※1 Derby RDB 組み込み ※2 Java標準で

    パフォーマンス比較 Cassandra、Mongodb、SQLite、H2、MySQL、Postgres - cypher256's blog
  • 【DB】【Twitter】Twitterにおける大規模リアルタイムデータの取り扱い方法いについて - goinger的日記

    SlideShareで見つけておもしろかったので内容をざっとまとめてみました. 3 months agoとなっているので結構最近の資料ですね 内容はtwitterでのリアルタイムデータの取り扱い方法について、初期の実装手法 + 問題 + 解決方法 + 将来の実装 + 原則といった感じの順番でそれぞれの項目についてまとめている 始めに: Real Time Dataとは? 超low latency Latencyやスループットが重要 Hadoopなどのhigh-latencyなデータツールは利用せず メイン: Twitterにおける4つのリアルタイムデータの取り扱い手法について 1. Tweets 2. TimeLines 3. Social Graphs 4. Search Indices 1. Tweets 140 charのメッセージ + メタデータで構成されてる クエリとしてはid,

    【DB】【Twitter】Twitterにおける大規模リアルタイムデータの取り扱い方法いについて - goinger的日記
  • NoSQLの成功は1:10問題にかかっている:Kenn's Clairvoyance

    ここ2-3年ほど、いわゆる非SQL系データベースがホットな話題になってきています。このムーブメントを総称して「NoSQL (Not-only SQL)」と呼ばれることが多いようです。まるでSQLを否定しているかのような誤解を招きやすい用語ですが、かといってキー・バリュー型データストアや列指向DBを総称できる他の呼び方もないので、このエントリではNoSQLという用語を使うことにします。 OracleMySQLなどのSQLデータベースが成熟していく一方で、SQLデータベースを特徴づける弱点である柔軟性のなさ、堅牢さと引き換えに犠牲になった更新性能の低さ、スケールアウトの難しさなどから、「何でもかんでもRDB」から「目的に応じた永続化」が模索される流れになってきました。 時を同じくして、キャッシュサーバの世界でも、MemcachedのもつシンプルなAPIの使いやすさが評価される一方、LRUによ

    NoSQLの成功は1:10問題にかかっている:Kenn's Clairvoyance
  • 京都収納棚紅玉束縛: Rubyで簡単、DBプログラミング - mixi engineer blog

    静かに暮らしたいmikioです。今回は、新進気鋭のDBMであるKyoto CabinetRubyバインディングを駆使してお手軽にデータベースプログラミングを行う方法について述べます。 Kyoto Cabinetのおさらい Kyoto Cabinet(KC)は、Tokyo Cabinet(TC)に比べて、最適化された性能よりも保守性を重視したDBMの実装です。オブジェクト指向プログラミングの技法を用いて、少ないコード記述量で容易に機能追加できるように設計しています。また、実装としては、空間効率の向上と並列処理性能の向上を重視しています。以下のプレゼン資料も参考になると思います。 TCでもハッシュ表やB+木などのデータ構造を動的に切り替えて同じインターフェイスで操作するための「抽象データベース」という機構がありましたが、KCでは同じことを「多相データベース(polymorphic datab

    京都収納棚紅玉束縛: Rubyで簡単、DBプログラミング - mixi engineer blog
  • 楽天製。Rubyベースの分散型キー/バリューDB·ROMA MOONGIFT

    ROMAはRuby製のオープンソース・ソフトウェア。Webシステムで一般的に使われているRDBMSに対してここ一、二年で注目を集めているのがキー/バリュー型のデータベースシステムだ。シンプルに使えてスケールしやすく、大型のWebシステムでは導入が当たり前になりつつある。 そんなキー/バリュー型データベースとして有名なのはmemcachedやMogileFSなどが知られている。そこに独自のデータベースを開発したのが楽天だ。Ruby開発者であるまつもと氏をフェローに迎えて開発されたのがROMAになる。もちろんRubyで開発されておりごく手軽に利用できる。 ROMAはRuby1.9を使って動作する。インストールは簡単にでき、複数のインスタンスを簡単に立ち上げられる。そしてクライアントからはmemcachedと同様に接続が可能で、telnetでも接続することが可能だ。P2Pをもとして分散システムに

    楽天製。Rubyベースの分散型キー/バリューDB·ROMA MOONGIFT
  • 【ハウツー】PostgreSQLの高速化と高信頼化を実現する「pgpool-II」を使ってみる (1) pgpool-IIの概要 | エンタープライズ | マイコミジャーナル

    pgpool-IIの概要 「pgpool-II」とは、PostgreSQLの高速化と高信頼化を目的としたミドルウェアである。pgpool-IIは、下図のようにクライアントとPostgreSQLの間に入る形(プロキシ形式)で動作する。なお、データベースクライアントはPostgreSQLサーバへ接続するのではなく、pgpool-IIへ接続することになる。 pgpool-IIは現在、pgpool Development Groupにより開発が継続されている。ライセンスには修正BSDライセンスを採用しており、ソースコードが公開されているので自由に利用することができる。ソースコードはhttp://pgfoundry.org/projects/pgpoolからダウンロードすることができる。なお、2007年10月1日現在のpgpool-IIの最新バージョンは1.2.1である。 pgpool-IIはさまざ

  • ウノウラボ Unoh Labs: RDBで階層構造を扱うには?

    yukiです。ダイエットを始めて3kg減ったと思ったら、風邪を引いて見事に1kg増量。 運動しないと駄目ですね。あと残り20kg、道のりは遠いです。 さて今回は、「RDBで階層構造を扱うには?」です。 あるサイトを構築中に階層構造をもったカテゴリ構造にすることになり、どのようにDBで扱うか悩みました。 DBMySQLを採用していたので、この時点でぱっと頭に浮かんだ選択肢は以下のようなものでした。 XML-DBを利用する 親カテゴリレコードのプライマリIDを子カテゴリレコードに持たせる 親を含めた『絶対パス』を名称として扱い、取り出した後にパース ファイルシステムに同様のディレクトリ構造を作り、毎回パースする (1)のXMLDBはオープンソースのeXistやXindice、Yggdrasillなど様々な選択肢がありましたが、カテゴリのみの利用な割にメンテナンスコストが高すぎるので見送りま

  • A5:SQL Mk-2 - フリーの汎用SQL開発ツール/ER図ツール

    A5:SQL Mk-2は複雑化するデータベース開発を支援するために開発されたフリーのSQL開発ツールです。 高機能かつ軽量で、使い方が分かりやすいことを目標に開発されています。 SQLを実行したり、テーブルを編集するほかに、SQLの実行計画を取得したり、ER図を作成したりすることが出来ます。 特徴・機能 OCI接続・直接接続・ADOまたはODBCを介したDBへの接続 Oracle DatabaseはOCI経由の接続・直接接続が出来ます。 PostgreSQLMySQLは直接接続が出来ます。 Microsoft SQL Serverは、OLE DBプロバイダを直接呼び出した接続ができます。 IBM DB2は、ODBCドライバを直接呼び出した接続ができます。 その他のデータベースは、ADOまたはODBCを利用して接続します。 Oracle, PostgreSQL, MySQLは、A5:SQL

  • 1