タグ

dbに関するd_animal141のブックマーク (206)

  • Stack Overflow: 技術的負債の必然性 - ワザノバ | wazanova

    http://marcgravell.blogspot.co.uk/2014/04/technical-debt-case-study-tags.html 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約22時間前 Stack ExchangeのエンジニアであるMarc Gravellがブログで、Stack Overflowのタグ検索のパフォーマンスをあげるために一時的に対応した迂回策を、時間をかけて修正していった経緯を紹介しています。「あまり褒められたやり方ではないけど、その時点ではそうするのがベストだった。」という負債はあるよねという話しです。 Step 0 : 背景 Stack Overflowでは、質問に紐づいたタグを検索(“{a} and {b} and {c}”, “{d} or {e}”, “{f

    d_animal141
    d_animal141 2014/04/22
    Stack Overflow: 技術的負債の必然性 - ワザノバ |
  • PostgreSQLは、SELECTもロックを獲得する - 地平線に行く

    PostgreSQLは、SELECT文を実行すると暗黙的にロックを獲得するということを、システムを止めて初めて知りました。 なので、こういうSQLはまずいです。 SELECT * FROM FooTable; LOCK TABLE FooTable; これを二つ同時に実行するとデッドロックが発生します。 これは、2つのコマンドプロンプトで 画面A BEGIN; // トランザクションの開始 画面B BEGIN; // トランザクションの開始 画面A SELECT * FROM FooTable; 画面B SELECT * FROM FooTable; 画面A LOCK TABLE FooTable; 画面B LOCK TABLE FooTable; と実行すると再現できます。 なんで? 2行目のテーブルロックは、そのトランザクション以外にテーブルにアクセスするトランザクションがないことを保

    PostgreSQLは、SELECTもロックを獲得する - 地平線に行く
    d_animal141
    d_animal141 2014/04/13
    PostgreSQLは、SELECTもロックを獲得する
  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

    d_animal141
    d_animal141 2014/04/13
    楽観的ロックと悲観的ロック
  • 悲観もあれば楽観もある「トランザクション」の常識

    悲観もあれば楽観もある「トランザクション」の常識:企業システムの常識をJBossで身につける(8)(1/4 ページ) 企業向けアプリケーションのさまざまな“常識”をJavaのオープンソース・フレームワーク群である「JBoss」から学んでいきましょう。企業システムを構築するうえでの基礎となる知識をリファレンス感覚で説明していきます。初心者から中堅、ベテランまで大歓迎! ありえない! 企業システムでの不完全なデータ 企業活動の日々の業務で発生するさまざまなデータ。それらを保存・利用するために、企業はITへの投資を行い、システムを構築しています。そうしたシステムにおいて、データを保存する際に防がなければならないのが不完全な状態での登録や更新です。 また、昨今のシステムでは保存先が複数存在するケースが多々あり、各保存先間での整合性を保証する必要があります。そこでシステム開発の際に重要となるのが、今

    悲観もあれば楽観もある「トランザクション」の常識
    d_animal141
    d_animal141 2014/04/13
    悲観もあれば楽観もある「トランザクション」
  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは、お名前.comで取得されています。 お名前.comのトップページへ Copyright © 2020 GMO Internet, Inc. All Rights Reserved.

    d_animal141
    d_animal141 2014/04/13
    PostgreSQLのインストールと基本的な設定 | Linuxで自宅サーバ構築
  • Rails でファイルをアップロードしてDBに登録する - Qiita

    はじめに gem を使わずに Rails の機能だけで、ファイルのアップロードを試してみます。 バージョン ruby 2.0.0p247 Rails 4.0.0 今回は、アップロード可能な形式やファイルサイズの制限はしてません。 Model class CreateContents < ActiveRecord::Migration def change create_table :contents do |t| t.string :upload_file_name t.binary :upload_file t.timestamps end end end モデル名は Content としています。 アップロードされたファイルを保存する upload_file をbinary、ファイル名を保存する upload_file_name を string で定義しています。 View

    Rails でファイルをアップロードしてDBに登録する - Qiita
    d_animal141
    d_animal141 2014/04/06
    Rails でファイルをアップロードしてDBに登録する
  • MongoDBってなんだ?

    最近いろいろなところでMongoDBという単語を聞きますよね。 そういうわけで興味だけは持っていたが、なかなか腰が重くて取り組んでいなかったMongoDB。 話題になる新技術は、「ただ話題になっているだけ」なのか「当に便利」なのかが良く分かりませんが、MongoDBはどうやら「当に便利」っぽいので勉強してみました。そして、実際に便利っぽかったです。 Wikipediaによると、こういうものだそうです。 高パフォーマンス、スキーマレス、オープンソースのドキュメント指向データベース 高パフォーマンスは分かるとして、スキーマレス、ドキュメント指向ってなんだという話です。 スキーマレスってなんだ? 「MongoDBはJSONのような構造でデータを持ちます」というと、JSONでWeb APIを利用したことがある人は「お、何やら便利そうだな」と思うんじゃないかと思います。JSONって扱いやすいです

    MongoDBってなんだ?
    d_animal141
    d_animal141 2014/03/30
    MongoDBってなんだ? | 三度の飯とエレクトロン
  • SQL -TECHSCORE-

    ここでは、リレーショナル型データベースを操作するために必須となる世界標準言語 SQL について、基礎から応用まで詳しく説明しています。 また、SQL のみにとどまらず、リレーショナルデータベースマネージメントシステム (RDBMS) の持つ様々な機能について詳しく説明しています。 最後には、データベースの設計に関する非常に重要な考え方についても触れていますので、これらを全て学習すると、データベースの操作から設計まで幅広い知識を身につけることができるでしょう。 SQL INDEX 1. データベースの概要 1.1. データベースとは 1.2. データベースシステムの特徴 1.3. データベースとファイルの違い 1.4. 代表的なデータモデル 1.5. リレーショナル型データベース 1.6. まとめ 2. SQL 2.1. SQL歴史 2.2. SQL とは 2.3. SQL の機能 2.

    d_animal141
    d_animal141 2014/03/29
    データベース | TECHSCORE(テックスコア)
  • Active Record で N+1 問題 - 日々精進いたします

    最近会社でHibernateのN+1問題事例を調べてたんですが、ActiveRecordでも当然のように起こりますね。 BOOKSテーブルが、1対NでREVIEWSテーブルと関連を持っています。(BOOKSが1、REVEWSがN) 以下のコードでは、BOOKSテーブルを全件検索して、それに関連するREVIEWSテーブルのレコードを取得して、REVIEWSテーブルのBODYカラムを出力する。 Book.all.each { |book| book.reviews.each { |review| puts review.body } } このコードではBOOKSテーブルに対して1回のSQLが発行され、REVIEWSテーブルに対してはBOOKSテーブルのレコード数分のSQLが発行されます。N+1問題です。BOOKSテーブルとREVIEWSテーブルの多重度に関係なく、親テーブルを複数検索して、子テ

    Active Record で N+1 問題 - 日々精進いたします
    d_animal141
    d_animal141 2014/03/12
    Active Record で N+1 問題
  • 必見!Forkwell松田明が出題するRails課題の正解発表|【Tech総研】

    編はRails定番のN+1問題。RailsのActiveRecordは便利だが、非効率なデータベースクエリを発生させることもある。そうならないようコーディングするにはどのようにすればいいかを考えるのがこの問題の趣旨。問題は以下のとおりだ。 ○設問 Forkwellの「読んだ・書いた」の一覧ページを高速化しましょう。 読んだ・書いたのページで、それぞれの記事の「読んだよ!」の総数や、記事についたコメントの総数も一緒に表示する、という仕様だったとします。 https://forkwell.com/publications 何も考えずにコードを書いたところ、以下のようになりました。 https://github.com/CodeIQ/forkwell/tree/master/question_1 しかし、このコードだとレコード数が増えれば増えるほど、SQLの発行数が増える、いわゆる『N+1問

    d_animal141
    d_animal141 2014/03/11
    必見!Forkwell松田明が出題するRails課題の正解発表|
  • 共有行ロックと排他行ロックの違い - shima111の日記

    select ... for update; select ... lock in share mode; の違いがよくわからなかった。 データを更新する時に必要なロックは、for update データを参照する時に必要なロックは、share mode と体感的に理解できるのだが、どちらのロックを取ったときも、他の誰もデータを更新、削除できない。 また、どちらのロックも、(for update していたら、他から参照できないのかと思いきや)他の誰からも参照は可能。 ん?となると、この2つのロック、何がどう違うの?? その答えは ここ に書いてあった。(リンク先はPostgresだが、MySQLでも同じこと) 共有ロックとは、排他ロック(更新、削除、FOR UPDATE)をブロックする/される一方、共有ロック同士では互いにブロックしないというものです。 なるほど、share mode はセマ

    共有行ロックと排他行ロックの違い - shima111の日記
    d_animal141
    d_animal141 2014/03/11
    共有行ロックと排他行ロックの違い
  • 超簡単wordpressデータ初期化 - snblog

    開発が一通り落ち着いて、 データを一旦初期化したいときありますよね。 でも入れたプラグインとかリソースはそのままにしたい。 そんなときは以下の手順で超簡単にwordpressのデータを初期化できます。 但し、プラグインの各設定がDBで行われている場合、その設定も初期化されることと、プラグインの有効化は全て無効になってしまいますので、その点だけご注意を。なにせDB丸ごと消しちゃうので。くれぐれもバックアップは忘れずに。。。 以下wordpressデータ初期化手順 DB削除 wp-config.phpを削除 管理画面にアクセス(/wp-admin) 初期化画面から再設定 以上 プラグインとかリソースはそのままでデータの初期化成功。

    超簡単wordpressデータ初期化 - snblog
    d_animal141
    d_animal141 2014/02/04
    超簡単wordpressデータ初期化
  • SQL脳に優しいMongoDBクエリー入門 - taka512's blog

    mongoコマンドから接続した際にオールドタイプ(SQL脳)たる我々人類にも 調べやすい形でinsert、select、updateを行う方法を調べました。 定義参照 // use [データベース名] use [データベース名] // show databases show dbs // show tables show collections参照系 // select * from [コレクション名] db.[コレクション名].find() // select * from [コレクション名] where x=4 db.[コレクション名].find({x:4}) // select j from [コレクション名] where x=4 db.[コレクション名].find({x:4}, {j:1}) // select * from [コレクション名] limit 1 db.[コレクション

    SQL脳に優しいMongoDBクエリー入門 - taka512's blog
    d_animal141
    d_animal141 2014/02/03
    SQL脳に優しいMongoDBクエリー入門
  • web帳 | webデザイナーの、webデザイナーによる、webデザイナーのためのサイト

    このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。 web帳

    d_animal141
    d_animal141 2014/01/20
    VirtualBoxとVagrantで開発環境を構築 その3 phpMyAdmin インストール centOS apache設定
  • makopi23のブログ 「SQLアンチパターン・レトロスペクティブ - データベース危篤患者の救出 -」に参加しました

    2013/2/26(火) 「「SQLアンチパターン・レトロスペクティブ - データベース危篤患者の救出 -」に参加してきました。 DoorKeeper(告知サイト) http://devlove.doorkeeper.jp/events/2775 Togetter http://togetter.com/li/462950 以下書籍をターゲットとした勉強会なのです。 会場はIIJです。参加者は130名くらいでしょうか。あと大阪会場ともTV電話システムで繋がれました。 この講演、前々からとても楽しみにしてました。 データベースやSQLは、ソフトウェアエンジニアにとっては避けて通れない道だと思います。 なんせ、DBがないシステムなんてほとんど考えられないですからねー SQLの知識はアプリ開発だけでなく、運用や保守でも要求されます。 かくいう私も、システム稼動直後からサーバルームに張り詰めて、ひ

    d_animal141
    d_animal141 2014/01/01
    makopi23のブログ 「SQLアンチパターン・レトロスペクティブ - データベース危篤患者の救出 -」に参加しました
  • ER図の目的とは? 初心者向けに書き方を教えます

    ER図(Entity Relationship Diagram) ER図とは、データベースのテーブル(Entity)とテーブル同士の関連(Relationship)を図に表したものであり、データベースのテーブル設計に用いられる。ER図において、エンティティは四角形の記号、リレーションは四角形同士を結ぶ線で表現される。 書き方 ER図の書き方は、エンティティとリレーションを記号で表して書く。ER図の書き方には、以下に示す2種類がある。 IDEF1X記法 IE記法 エンティティ 論理モデルのER図の場合、エンティティ(実体)は業務におけるひとまとまりのデータを表している。物理モデルのER図の場合、エンティティはデータベースのテーブルを表す。 エンティティには2種類あり、非依存実体と依存実体に分けられる。 非依存実体 非依存実体とは、他のエンティティに依存せずに存在できるエンティティである。例え

    d_animal141
    d_animal141 2013/12/16
    E-R図 (Entity Relationship Diagram)
  • InnoDBのロックの範囲とネクストキーロックの話 - かみぽわーる

    この記事はMySQL Casual Advent Calendar 2013 3日目の記事です。 はじめに 以前にSELECT ... FOR UPDATEとロックの挙動 - walf443's blogの記事にTwitterで少し言及したんですが、それの補足というか、InnoDBのロックの範囲について僕はこう理解していますよという話です。 MySQLといえば、InnoDBをネットワークサーバとして使うためのフレームワークであり、SQLはInnoDBのインデックスにアクセスするためのDSLといっても過言ではないでしょう。 InnoDBのロックとはつまるところインデックス行のロックなので、InnoDBのロックの範囲を理解するためにInnoDBのインデックスについて少し前置きしておきます(だいぶ端折ったけど長くなった…)。 クラスタインデックスとセカンダリインデックス すでにInnoDBのイン

    InnoDBのロックの範囲とネクストキーロックの話 - かみぽわーる
    d_animal141
    d_animal141 2013/12/04
    InnoDBのロックの範囲についての話
  • 楽々ERDレッスン 第1回:「お持ち帰りご注文用紙」編

    はじめに システム構築においてデータベース設計は不可欠です。そこで多くの方がデータベースの設計技法について書籍で学んだりするのですが、なかなか身についたと感じられないことも多いのではないかと感じます。 その理由は、実務で任せられる機会というのが少ないからというのが大きなものとして挙げられます。データベース設計というのは、やはり重要な箇所ですから自然と経験のある人に任せられることが多いのが実態です。しかもデータベース設計を担当するのはプロジェクト全体の中でもごく少数だけになりますから、なかなかチャンスが巡ってきません。 しかし、それを嘆いているばかりではスキルが身につかないのも道理です。そこで身近にあるものを何でも手当たり次第にデータベース設計のネタにしてしまうことで、コツコツと地力をつけていこうというのがこのシリーズの主旨です。 合言葉は、「表組みを見たらERDを描け!」 。では、張り切っ

    楽々ERDレッスン 第1回:「お持ち帰りご注文用紙」編
    d_animal141
    d_animal141 2013/11/21
    楽々ERDレッスン 第1回:「お持ち帰りご注文用紙」編
  • MySQLで、正しいデータ型を使うことはどのくらい重要なのか? | Yakst

    テーブル設計においてカラムのデータ型を正しく決めることには、どのような利点があるのかについて。単純に扱う値と同じ型を選ぶべきであるというだけではなく、なぜそうあるべきかについて、内部的な効率の面から解説する。 パフォーマンスに関する話の中で、カラムに値を保存するのに正しいデータ型を使うことの重要性を説いているのを聞くことがよくある。例えば、数値はINTやBIGINTで表現し、IPアドレスにはINT UNSIGNEDを使い、VARCHAR(255)の代わりにVARCHAR(60)を使うといったことだ。 このアドバイスは正しい。しかし、今日はもう少し詳細の説明を試みてみようと思う。 理由 この最適化が正しいと思う3つの理由は以下の通りだ。 文字列として数値データを扱うことは、文字コードや照合処理のCPUオーバーヘッドが余計に必要になってしまう。例えば、'Montréal' = 'Montrea

    d_animal141
    d_animal141 2013/11/19
    MySQLで、正しいデータ型を使うことはどのくらい重要なのか?
  • データベースアプリケーション開発を炎上させる負のスパイラル

    毎度おなじみ、はてブのホットエントリに「SIをダメにする負のスパイラル」というタイトルのまとめが掲載された。きしだ氏とはかなり視点は違うものの、開発現場の問題点については少し思うところがあるので意見を書いてみようと思う。と言っても、以下の話の内容はデータベースアプリケーションに限定した話であり、またSIerだけに限った話ではないのでその点はご容赦頂きたい。もちろんSIer各位の案件はデータベースは必須なので、エントリで触れる問題点には該当するだろう。 Q.なぜ炎上するのか? A.正しいデータベース設計ができていないから結論から言おう。データベースアプリケーションの開発が炎上するのは正しいデータベース設計ができていないからだ。ここでいう「正しい」とは、論理的に証明できる正しさという意味ではない。「来こうするべき」といった意味で捉えて欲しい。 「炎上」というのは、例えばテストが通らない、バ

    データベースアプリケーション開発を炎上させる負のスパイラル
    d_animal141
    d_animal141 2013/11/18
    漢(オトコ)のコンピュータ道: データベースアプリケーション開発を炎上させる負のスパイラル