タグ

dbに関するtoshihiko150のブックマーク (5)

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

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

    データベースを遅くするための8つの方法
  • 1000万件オーバーのレコードのデータをカジュアルに扱うための心構え - joker1007’s diary

    自分が所属している会社のメンバーの教育用資料として、それなりの規模のデータを扱う時に前提として意識しておかなければいけないことをざっくりまとめたので、弊社特有の話は除外して公開用に整理してみました。 大規模データ処理、分散処理に慣れている人にとっては今更改めて言うことじゃないだろ、みたいな話ばかりだと思いますが、急激にデータスケールが増大してしまったりすると環境に開発者の意識が追い付かないこともあるかと思います。 そういったケースで参考にできるかもしれません。 弊社は基的にAWSによって運用されているので、AWSを前提にした様なキーワードやサービス名が出てきます。後、句読点があったり無かったりしますが、ご容赦ください。 追記: 社内用の資料の編集なのでかなりハイコンテキストな内容だから誤解するかもしれませんが、これらはそもそもRDBの話ではありません。(関係無くは無いけど) 1000万オ

    1000万件オーバーのレコードのデータをカジュアルに扱うための心構え - joker1007’s diary
  • [Rails][Heroku] Herokuで強制的にdb:migrateをやり直す。その2 - mat_akiの日記

    http://d.hatena.ne.jp/shunsuk/20110322/1300794096 このブログでHerokuのデータベース(標準のpostgres)を最初からつくり直す方法として、migrationにSTEPオプションを渡す方法が紹介されています。 migrateにそんなオプションがあったとは知りませんでした。 僕は、いつも以下のやり方でやっています。 $ heroku pg:reset --db SHARED_DATABASE_URL --app manga-dojo-staging Resetting SHARED_DATABASE_URL (DATABASE_URL) ! WARNING: Potentially Destructive Action ! This command will affect the app: manga-dojo-staging ! To

    [Rails][Heroku] Herokuで強制的にdb:migrateをやり直す。その2 - mat_akiの日記
  • インデックスを使うとなぜ速くなるのか

    インデックスを使うと何故早くなるのか ページではORACLEにおいてインデックスを使うと何故クエリが早くなるのか、またはなぜ速くならないのかを説明します。 なお、ページでは索引構成表やビットマップインデックス等の特殊なデータ構造を持つオブジェクトは考慮しておらず一般的なテーブルとインデックスを想定しています。 前提知識 インデックスを使うとなぜ速くなるのかを理解するためには以下の前提を理解している必要があります。 ・ディスクアクセスはCPUアクセスと比較すると非常に遅い 一般的にはCPU処理時間がナノ秒単位であるのに対してディスクのアクセス時間はミリ秒単位であり、ディスクはCPUに比べて100万倍程度処理が遅いとされています。 したがって、クエリの処理時間はディスクアクセスが最も少ない実行計画が最も高速となる可能性が高いと考えられます。 ・I/Oの単位はブロックである ORACLEのI

  • herokuのデータベースインポート/エクスポートツール Taps - 森薫の日記

    heroku, Rails | 09:49 | インストールgemでインストールできます。私の環境ではsqlite3.hがなかったので、libsqlite3-devもインストールしました。 $ sudo apt-get install libsqlite3-dev $ sudo gem install taps インポートローカルのデータベースの内容をherokuにインポートします。以下の例ではconfig/database.ymlのdevelopment環境のデータベースをインポートします。 $ heroku db:push インポート元のデータベースを指定することもできます。SQLite $ heroku db:push sqlite://local.db MySQL $ heroku db:push mysql://root:mypass@localhost/mydb Postgre

  • 1