タグ

databaseに関するt-wadaのブックマーク (174)

  • DELETE_FLAG を付ける前に確認したいこと。 - Qiita

    DELETE_FLAG という思考停止フラグ DELETE_FLAG という boolean の列が DB 設計でよく話題になります。 論理削除という言葉で上手に論理武装し、スキを見せるとすぐに入れたがる人がおり、 一方でそれにつよく反対する人もいます。 自分の経験としては、広義の論理削除はありえると思いますが、実現方法が DELETE_FLAG だとなった時、それはあまり考えてないでなんとなくパターンとして盛り込んでる場合が多いと感じます。 ただし、設計に唯一の答えは無いので、もしかしたらそれが妥当な設計である場合があるかもしれません。 今回は「DELETE フラグがなぜダメなのか?」などという話をするつもりも、アンチパターンだと断言するつもりもありません。 問題は、仕様をきちんと把握すると、「最適な設計は DELETE_FLAG ではない」という場合が有って、その場合は、その最適な設計

    DELETE_FLAG を付ける前に確認したいこと。 - Qiita
    t-wada
    t-wada 2015/03/24
    質問と回答のスタイル、とてもいい。アンチパターン形式に編集すれば『SQL アンチパターン』第26章「とりあえず削除フラグ」にできるのではないかと思えてくる。
  • 人類は如何にして大切な データベースを守るべきか

    SQLアンチパターン読書会最終回(第25章)で用いた資料です。章タイトルは「砂の城」でしたが、スライド自身にはもう少し分かりやすいタイトルをつけています。サービス安定稼働のためにどういったことが必要なのかというのが、スライドの主旨です。最後に少しオマケあり。

    人類は如何にして大切な データベースを守るべきか
    t-wada
    t-wada 2015/02/04
    『SQLアンチパターン』第25章「砂の城」寄稿者である奥野さん本人による解説 & 本に載せ忘れた話×3. とても良い講演でした
  • 書籍出版のお知らせ:理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL

    来る2月27日、データベースの新書籍を発売させて頂くことになった。タイトルは「理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL」となっている。単に「データベース」と書いてあるが、RDBがメインのテーマの書籍である。 多くの人が未だにRDBを使いこなせていないのではないか。RDBの使い方をマスターするには何が必要なのか。それがここ数年私が追ってきたテーマであり、この書籍を出すことになった動機である。 あまりにも酷いDB設計、あまりにもスパゲティなクエリ、あまりにも希薄なデータモデルへの理解。そういった問題はどこから生み出されるのか。そのひとつの結論としてたどり着いたのが、「そもそもRDBの使い方があまり理解されていないのではないか」ということだった。名著、SQLアンチパターンでは「やってはいけないケース」について学ぶことができるが、その反対のテーマ、つまり来どの

    書籍出版のお知らせ:理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL
    t-wada
    t-wada 2015/02/03
    “名著SQLアンチパターンでは「やってはいけないケース」について学ぶことができるが、その反対のテーマ、つまり本来どのようにRDBを使うべきかが、きっちりと理解されていないのではないか” 真打登場
  • しょぼちむにデータモデル設計について教えてくださいの会 #syoboben (2015/02/21 15:00〜)

    !!ATTENTION!! 2/14時点で参加者が10人に満たない場合 or 発表者が3人に満たない場合は、 申し訳ないのですが企画を見送ります>< 企画の規模含めて再検討するので、ご了承ください>< 開催決定!! 概要 @syobochimにデータモデル設計について教えて下さい!! みなさんがどういう風に考えてデータモデルを設計しているのか知りたいです!! ピザと飲み物を飲みながらのビアバッシュ形式で、ゆるふわーな感じでやりたいです!! 教えてくれる人枠のピザ代も含んでいます。御了承ください。 ソフトドリンク以外にビールなどのアルコールも用意する予定です。 ゴール しょぼちむが明日現場で使える知識の習得・共有 しょぼちむが現場で目指すべき理想のデータ設計の理解・共有 ※それ以外の内容も歓迎です!! 教えて欲しくなった背景 お仕事中、ふと気づくとこんなデータモデルができていた!! リレーシ

    しょぼちむにデータモデル設計について教えてくださいの会 #syoboben (2015/02/21 15:00〜)
    t-wada
    t-wada 2015/01/29
    リレーションとリレーションシップを混同するとマサカリが飛んでくるゾォー!!
  • レプリケーション:開発生産性&運用性向上 | Think IT(シンクイット)

    文書や画像生成データ分析などをGoogleAIで効率化!『できるGemini』を5名様にプレゼント! 3月6日 10:20

    レプリケーション:開発生産性&運用性向上 | Think IT(シンクイット)
    t-wada
    t-wada 2015/01/28
    MySQL 5.6 の遅延レプリケーション機能 (意図的にレプリケーションを遅延させる機能) は、オペミス対策に使えるのか。遅延させたスレーブをひとつ用意しておけば良い
  • 開発環境のデータをできるだけ本番に近づける - クックパッド開発者ブログ

    こんにちは。技術部の吉川です。 今回はクックパッドの開発環境構成、特に開発用データベースの構成についてご紹介します。 開発環境の構成 クックパッドのシステム環境は以下のようなフェイズに分かれています。 ※ これはcookpad.comの構成で、サブシステムや個別のサービスはその規模や特性に応じて構成が異なります。 development 開発者が実際に開発を行う環境です。クックパッドでは仮想環境は用いず、手元のマシンでRailsアプリケーションを動かして開発を行っています。 データベースはローカルではなく、開発者全体で共通の開発用データベースに接続しています。 test 手元でテストを実行する場合は、ローカルマシンのデータベースを利用します。CI(rrrspec)などの場合も同様で、テスト実行サーバーのデータベースが利用されます。 staging stagingといえば準番環境として、

    開発環境のデータをできるだけ本番に近づける - クックパッド開発者ブログ
    t-wada
    t-wada 2015/01/27
    "セキュアなデータに関しては社内で命名規則があり、 それに該当するデータは自動でフィルタリングされstaging-dbにはレプリケーションされないようになっています" 命名規則で自動判定するのいいな
  • Amazon.co.jp: 理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus): 奥野幹也: 本

    Amazon.co.jp: 理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus): 奥野幹也: 本
    t-wada
    t-wada 2015/01/27
    真打きたこれ "SQLとリレーショナルモデルの関係から、述語論理、正規化理論、SELECTの詳しい解説、アプリケーション開発におけるデータ構造、リファクタリング、トランザクションまで理論と実践を併記"
  • MySQLのmy.cnfファイルサンプル

    MySQLのバージョン インストールされたMySQLのバージョンは以下のようになります。 名前 バージョン ダウンロード元 my.cnfサンプル 以下のサンプルを参照して、my.cnfファイルを作成してください。 # このファイルは MySQL 5.6を基準として作られてあります。 # http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html を参照しました。 [mysqld] ##-------------------------------------------------------------------- # mysqldの基設定 ##-------------------------------------------------------------------- # id は 1 から 2^

    MySQLのmy.cnfファイルサンプル
    t-wada
    t-wada 2015/01/21
    MySQL の設定ファイル my.cnf の各設定項目について日本語で詳しく説明されている
  • MySQL 5.6のインストール後にチューニングすべき項目 | Yakst

    MySQLコミュニティマネージャのMorgan Tocker氏による、MySQL 5.6をインストールした後にデフォルト値から変更した方がよいパラメータの解説。 数々のデフォルト値の改善によって、過去のバージョンと比べてMySQL 5.6では設定しなくてはならない値がかなり減った。とは言え、変更すべきものについてここで書いておきたい。 InnoDBの設定 innodb_buffer_pool_size - デフォルトは128M。これは、メモリにロードされるデータとインデックスのためにInnoDBがどのくらいメモリを使うかを指定するものなので、設定すべき重要な値だ。MySQLの専用サーバなら、搭載されているメモリの50%から80%が推奨される設定値だ。例えば、64GBのRAMを搭載しているサーバなら、バッファプールは50GB程度にすべきだろう。 innodb_log_file_size -

    MySQL 5.6のインストール後にチューニングすべき項目 | Yakst
    t-wada
    t-wada 2015/01/21
    "数々のデフォルト値の改善によって、過去のバージョンと比べてMySQL 5.6では設定しなくてはならない値がかなり減った。とは言え、変更すべきものについてここで書いておきたい" とても参考になる
  • 「Javaの鉱脈」でFlywayの記事を書きました | さにあらず

    WEB+DB PRESS の Vol.84 で、データベースマイグレーションの記事を書いたので是非読んでくださし。 2014/12/23 発売ですので、既に購入頂いてる方も多いと思います。 電子書籍版もありますので物理的な媒体に興味がない方は PDF を買って下さい。 WEB+DB PRESS Vol.84@Gihyo Digital Publishing 今回の記事における対象読者について​ データベースの構成管理はちゃんと自動化してるますか?そして、データベースの構成管理を自動化するのは恐ろしく面倒なんですなぁ。 テクノロジの話じゃなくて、開発プロセスの話であり、運用の話でもあるので凄く面倒なんですよね。 それにしたって、Rails の rake db:migrate マジ便利だし、それで上手くいってる人達だって沢山いるでよ。と、まぁそういう訳でデータベースマイグレーション頑張りましょ

    「Javaの鉱脈」でFlywayの記事を書きました | さにあらず
    t-wada
    t-wada 2014/12/26
    "クライアントサイドにもしっかりとデータベースを持つのは自然な流れ" “おい、そこの若手!フロントエンドだけやるからったってRDBからは逃れられんぞ!”
  • PostgreSQL 9.4がリリース。ドキュメントDB並の性能でJSONBサポート、レプリケーション機能の高度化など

    PostgreSQL 9.4がリリース。ドキュメントDB並の性能でJSONBサポート、レプリケーション機能の高度化など PostgreSQL 9.4の主な新機能は、バイナリ形式のJSONであるJSONBのサポート、高度なレプリケーションに利用できる新しいAPI、GINインデックスの高速化など。 一般的なドキュメントデータベース並の高速性 PostgreSQLでは以前のバージョンからJSON形式をサポートしていましたが、今回サポートされたJSONB形式は、バイナリ形式のJSONデータへの対応です。JSOBのサポートGINインデックスの高速化によって、ドキュメントデータベース並みの高速性を実現したとのこと。 JSONB supports fast lookups and simple expression search queries using Generalized Inverted In

    PostgreSQL 9.4がリリース。ドキュメントDB並の性能でJSONBサポート、レプリケーション機能の高度化など
    t-wada
    t-wada 2014/12/22
    PostgreSQL どんどん強くなるな
  • O/Rマッパーによるトラブルを未然に防ぐ

    ORMがトラブル起こすから嫌い」なんじゃなくて、「ORMが起こすトラブルが解決できないから嫌い」ってのがほんとのところじゃない?だったら解決方法を知ればいいんじゃね?というお話。「N+1問題」もろくに知らずにORMを批判せんでほしい。

    O/Rマッパーによるトラブルを未然に防ぐ
    t-wada
    t-wada 2014/12/22
    これは素晴らしい資料だなぁ
  • Post by @dekasasaki · 3 images

    JPOUGのAdvent Calendar 12/15 担当です。 先日開催された db tech showcase 東京 2014 で関口さんが聴講者向けに「この中にモデリングを実際にやったことがある人はいますか?」という質問をしましたが、なんとほとんど手が上がらなかったのですね。「みんな意外とモデリングしてない?」そう思って日の記事を書いてみることにしました。 先に私のことを書いておきましょう。私はDBエンジニアではありません。金融系が主なフィールドで、どちらかというとプラットフォーム(IT基盤)やアプリケーション(AP基盤)を得意とする分野で働いています。ですので、E-Rデザインに特化したお話ではありません。オブジェクト指向をベースにモデリングの当に最初の最初にあたるステップのお話をします。 抽象度が高いレベルですから、モデリングをやるにはER図でもいいだろうし、私個人はUMLの

    Post by @dekasasaki · 3 images
    t-wada
    t-wada 2014/12/15
    “私の仕事はデザイナーではなくモデラーです。モデラーの仕事は、現実にそこにあるものを「取り出す」仕事なのでデザインではないのです。” 俺の親父、意外と良いこと言っているな……
  • GitHub - substack/leveldb-handbook: how to modularly database with leveldb

    leveldb-handbook LevelDB is a simple embedded database. It was originally written for Google Chrome's IndexDB implementation and implements many ideas from Google's BigTable database. This document covers using leveldb in node.js. introduction The best thing about using leveldb in node is the modular nature of the core library and the ecosystem of abstractions that have been built up around that c

    GitHub - substack/leveldb-handbook: how to modularly database with leveldb
    t-wada
    t-wada 2014/11/07
    substack が書いている LevelDB のハンドブック(書き途中)
  • GitHub - cockroachdb/cockroach: CockroachDB — the cloud native, distributed SQL database designed for high availability, effortless scale, and control over data placement.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - cockroachdb/cockroach: CockroachDB — the cloud native, distributed SQL database designed for high availability, effortless scale, and control over data placement.
    t-wada
    t-wada 2014/11/07
    その名の通りゴキブリ並のしぶとさを特徴とする分散 KVS
  • イミュータブルデータモデル(入門編)

    ハンドノート T字形ERモデル セミナー資料 (Author; S.Toriyabe SYSTEMS DESIGN Co.,Ltd. Japan)

    イミュータブルデータモデル(入門編)
    t-wada
    t-wada 2014/10/21
    俺の親父(DB設計エンジニア)の設計に似ているなぁ。業務システムのDB設計レビューを行うときは「論理削除フラグ」「最終更新日時」等のカラムを見張ると設計が締まることが多いので、私もよくやります。
  • 開発者のためのSQLパフォーマンスの全て

    前書き - インデックスの作成はなぜ開発者のタスクなのか インデックスの 内部構造 - インデックスは何に似ているか インデックス リーフノード - 二重連結リスト 検索 ツリー(Bツリー) - バランス木 遅いインデックス パートI - インデックスを遅くする2つの原因 where 句 - 検索のパフォーマンスを改善するためにインデックスを作成 等価 演算子 - 一致するキーの検索 プライマリキー - インデックスの使い方を確認 複合インデックス - 複数列に対するインデックス 遅いインデックス パートII - 前の問題点が再び 関数 - where句の 中での関数 大文字・小文字を区別する 検索 - UPPERと LOWER ユーザ定義 関数 - 関数インデックスの制限 インデックスの作り過ぎ - 冗長性の排除法 パラメータ化 クエリ - セキュリティとパフォーマンスのために 範囲 検

    開発者のためのSQLパフォーマンスの全て
    t-wada
    t-wada 2014/10/20
    圧倒的な情報量だ。すばらしい。
  • PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会

    Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24

    PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
    t-wada
    t-wada 2014/10/15
    プロセスベースのアーキテクチャを持つ PostgreSQL をパラレル化する試みの歴史と今後の展望
  • MEANスタックは破壊的か

    最近、MEANがイイという話をチラホラと耳にする。先日も次の記事がはてブで話題になっていた。 MEAN(MongoDB, Express, AngularJS, Node.js)スタックが優れている理由 - Mozilla Open Web Day in Tokyoを終えて - albatrosary's blog この記事の冒頭では、MEANはLAMPに変わる技術として紹介されているが、果たしてそれは正しいのだろうか。(この記事では、LAMPを例にとりつつJavaがどうのという記述があるので、恐らくはLAMPではなく既存のリレーショナルデータベースを用いたアーキテクチャ一般について述べたいのではないかと思う。)MEANについて少し思うところがあるので、今日はMEANの可能性について書き綴っておこうと思う。ただし、私自身MEANスタックと呼ばれるシロモノは使ったことがなく、構造を理解した上

    MEANスタックは破壊的か
    t-wada
    t-wada 2014/10/10
    奥野さんのエントリを読みながら、松信さんのエントリを思い出していた http://opendatabaselife.blogspot.jp/2014/03/mysqlredismongodbredshift.html
  • 大規模環境でMySQLのGTIDを適用して得られた教訓 | Yakst

    MySQL 5.6からの機能であるGTIDを、Facebookの環境に適用した際の流れと主な不具合、そしてそれらの修正点について、Facebookのエンジニアによるまとめ。 by Evan Elias and Santosh Praneeth Banda Global Transaction ID (GTID)は、MySQL 5.6の新機能の中でも最も使わずにはいられない機能の一つだ。このおかげで、フェイルオーバやポイントインタイムリカバリ、階層を持ったレプリケーションなどに非常に有益だし、クラッシュセーフなマルチスレッドレプリケーションの必須条件にもなっている。この数ヶ月で、我々はFacebookの全ての番用MySQLインスタンスで、GTIDを有効にした。その中で、この機能の適用方法や操作について、たくさんの知見が得られた。たくさんのサーバサイドの修正事項については、WebScaleS

    大規模環境でMySQLのGTIDを適用して得られた教訓 | Yakst
    t-wada
    t-wada 2014/09/24
    迫力のある事例だ……