タグ

DBに関するagwのブックマーク (349)

  • PostgreSQLのチューニング [データベース] All About

    PostgreSQLのチューニング PostgreSQLは最適なパフォーマンスが出るように自動的に調整されるため、特別なチューニングテクニックは必須ではありませんが、最大限にパフォーマンスを引き出したい場合にはpostgresql.confで指定している値を調整することによりチューニングが可能です。また、PostgreSQLのパフォーマンス向上のためには定期的にVACUUMコマンドを実行することをお奨めします。 ■VACUUMコマンドを実行する VACUUMコマンドはPostgreSQLデータベースの掃除と解析をおこなうコマンドです。 定期的にVACUUMコマンドを実行するとデータベースの問い合わせのパフォーマンスが向上します。 VACUUMコマンドによる処理はテーブルが大きい場合は時間がかかりますので、あまりアクセスのない時間帯におこなうとよいでしょう。 ●VACUUMコマンドの文法 v

    PostgreSQLのチューニング [データベース] All About
  • ここが大変だよBigtableとGoogle App Engine

    ここが大変だよBigtableとGoogle App Engine:分散Key-Valueストアの命「Bigtable」(3)(1/2 ページ) RDBとは別の、クラウド時代のデータベースとして注目を浴びている「分散Key-Valueストア」。その命ともいえる、Googleの数々のサービスの基盤技術「Bigtable」について徹底解説 月間3000万PVの大規模サイトの運用費が月額4万円!? 月間3000万PV相当の膨大なトラフィックを楽々とさばく大規模サイトが、月額4万円弱で運用されている。 Google App Engine(以下、App Engine)が普及するにつれて、そんな驚愕の国内事例も登場しつつあります。GClueがApp Engine上で実装したmixiアプリモバイルモバイルには、1日100万PV以上のアクセスが集中している状態でもサービスのレスポンス低下やダウンは皆無

    ここが大変だよBigtableとGoogle App Engine
  • INNER JOINとCROSS JOINの違い - 豆無日記

    今までJOIN構文をなんとなくで使ってきたので、INNER JOINとCROSS JOINの違いがよくわからないでいる今日この頃。 いまさらながら調べてみた。 CROSS JOIN: ON, USING を指定しない場合、左右のテーブルの直積を返します。 つまり、左右のテーブルにそれぞれ2行のレコード、3行のレコードが格納されている場合、結果は全てのレコードの組合せになり合計 2x3=6 行のレコードになります。 PostgreSQLMySQL では ON, USING を指定すると INNER JOIN と等価になります。 SELECT * FROM table1 CROSS JOIN table2 は次の SQL 文と等価です。 SELECT * FROM table1, table2 また、PostgreSQL, MySQL では SELECT * FROM table1 CR

    INNER JOINとCROSS JOINの違い - 豆無日記
  • http://www.ecoop.net/memo/2007-11-14-1.html

    http://www.ecoop.net/memo/2007-11-14-1.html
  • 直積集合 - Wikipedia

    A = {x, y, z} と B = {1, 2, 3} との直積の図示 数学において、集合のデカルト積(デカルト­せき、英: Cartesian product)または直積(ちょくせき、英: direct product)、直積集合、または単に積(せき、英: product)、積集合は、集合の集まり(集合族)に対して各集合から一つずつ元をとりだして組にしたもの(元の族)を元として持つ新たな集合である。 具体的に二つの集合 A, B に対し、それらの直積とはそれらの任意の元 a ∈ A, b ∈ B の順序対 (a, b) 全てからなる集合をいう[1]。集合の組立記法(英語版) では と書くことができる。有限個の集合の直積 A1×⋯×An も同様の n-組からなる集合として定義されるが、二つの集合の直積を入れ子 (nested) にして、(A1 × ⋯ × An−1)× An と帰納的に

    直積集合 - Wikipedia
  • MySQLを巡り、米国と欧州が対立? | OSDN Magazine

    Oracleが4月に発表した米Sun Microsystems買収計画に対し、詳細調査を行っている欧州委員会(EC)がOracleに「異議告知書」を送付した。Oracleは11月9日付で声明文を発表し、「欧州はオープンソースを理解していない」と反論、米司法省も同日、2社の取引は競争の観点から見て問題はないとする声明文を発表した。 ECは、Sunが持つオープンソースデータベース「MySQL」の将来に懸念を示している。データベース市場で最大手のOracleがオープンソースのデータベース最大手のMySQLを傘下に入れることで、市場の競争が弱まるというのがECの見解だ。 いっぽうECの異議告知書に対しOracleは、MySQLはオープンソースであり、誰にもコントロールできない、データベース市場では8社が競合しており、8社のうちの2社が合併することに反対する法的根拠はない、などと反論、ECはデータ

    MySQLを巡り、米国と欧州が対立? | OSDN Magazine
    agw
    agw 2009/11/13
  • 続、グーグルはリレーショナルデータベースをクラウドに乗せるか?

    先週、グーグルはリレーショナルデータベースをクラウドに乗せるかというエントリを書いたところ、いくつかのコメントやトラックバックをいただきました。 いずれも興味深いコメントだったにも関わらず、コメント欄に利用しているTypePad Connectがなぜかうまく動作しておらず、表示できませんでした。しかしそれではもったいないので、このエントリとして紹介させていただこうと思います(TypePad Connectには障害報告しました)。 元になったエントリの主旨をまとめると、Google App EngineはJavaに対応したし、企業内のデータセンターとセキュアな通信もできるようになった。これはGoogle App Engineが企業向けのサービスとして方向を定めたことを示す。だとすると、企業システムに不可欠なリレーショナルデータベースもきっとGoogle App Engineにのせてくるのでは

    続、グーグルはリレーショナルデータベースをクラウドに乗せるか?
  • グーグルはリレーショナルデータベースをクラウドに乗せるか

    グーグルという会社は、例えばマイクロソフトやオラクルやアップルと比べると「戦略」といったものを積極的にはアピールしない会社です。 マイクロソフトやオラクルやアップルのような企業は、年に何度か大規模なイベントを開催し、現在の戦略や今後のロードマップを示します。しかしグーグルはそういった方法で将来像やスケジュールを明らかにすることはあまりなく、社内でこっそりと開発を続けて、ある日突然「こんなものができました」と発表する方を好むようです。 かつてGMailが登場したときも、そして先日Google App Engine for Javaが登場したときもそうでした。 そのためグーグルのクラウド戦略はどの方向に向かっているのか? ターゲットとするデベロッパー層や、想定しているアプリケーションの姿といったものがどういったものなのか、次にどんな施策を打ってくるのか、といったことは想像するしかありません。

    グーグルはリレーショナルデータベースをクラウドに乗せるか
  • 転置インデックスを実装しよう - mixi engineer blog

    相対性理論のボーカルが頭から離れないmikioです。熱いわっふるの声に応えて今回はTokyo Cabinetのテーブルデータベースにおける検索機能の実装について語ってみたいと思います。とても長いのですが、最後まで読んだあかつきには、自分でも全文検索エンジンを作れると思っていただければ嬉しいです。 デモ モチベーションをあげていただくために、100行のソースコードで検索UIのデモを作ってみました。Java 6の日語文書を対象としているので、「stringbuffer」とか「コンパイル」とか「倍精度浮動小数」とかそれっぽい用語で検索してみてください。 インデックスがちゃんとできていれば、たった100行で某検索エンジン風味の検索機能をあなたのデータを対象にして動かすことができます。ソースコードはこちら(テンプレートはこちら)です。 でも、今回はUIの話ではないのです。ものすごく地味に、全文検索

    転置インデックスを実装しよう - mixi engineer blog
  • SQL言語を触って学べるiPhoneアプリ「SqlSchool」 | パソコン | マイコミジャーナル

    新規データベースの作成に対応するなど機能が向上した「SqlSchool」 SQL言語の基礎を実際にデータベースを操作して学べるiPhoneアプリSqlSchool 2.0」が公開された。対応デバイスはiPhoneとiPod touch、動作環境はiPhone OS 2.2.1以降。価格は115円。 SqlSchoolは、iPhone OSに収録されているsqliteコマンドを利用した、SQL言語のチュートリアルソフト。インポートした「連絡先」などのデータベースを対象に、内蔵のスクリーンエディット機能を使い、SQLコマンドを実際に入力して結果を画面で確認することが可能。データベースごとに最大50のコマンド履歴を保存することもできる。 今回のバージョンでは、新規データベース作成機能を追加。内蔵のWebサーバ機能が強化され、データベースのアップロードに対応したほか、Webブラウザからクエリーを

  • 第1回 連番の特性を利用してデータ操作をもっと自由に SQLで連番を扱う (4)連番の生成 | gihyo.jp

    連番の生成~どうしてもループが嫌と言うならしかたない~ これまで、あらかじめ複数行を保持するテーブルを対象に連番を割り当てていました。今度は動的に連番を生成する方法を考えます。 ループを使わずに1行のデータをn行に増やす 表7のような1行だけデータを持つテーブルがあります。データの中身は重要ではないので気にしないでください。 表7 OneRow みなさんに考えてほしいのは、この1行のデータを3行に増やしてもらうことです。しかもその際、図6のように連番を付与します。 図6 連番列「seq」が追加されている seq col1 col2 col3 --- ---- ---- ---- 1 test data col 2 test data col 3 test data col ここで条件が1つあります。それは、3行に限らずn行に簡単に一般化できる方法であることです。もしこの問題を手続き型言語で

    第1回 連番の特性を利用してデータ操作をもっと自由に SQLで連番を扱う (4)連番の生成 | gihyo.jp
  • ウノウラボ Unoh Labs: RDBで階層構造を扱うには?

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

  • sqlite3 — DB-API 2.0 interface for SQLite databases

    sqlite3 — DB-API 2.0 interface for SQLite databases¶ Source code: Lib/sqlite3/ SQLite is a C library that provides a lightweight disk-based database that doesn’t require a separate server process and allows accessing the database using a nonstandard variant of the SQL query language. Some applications can use SQLite for internal data storage. It’s also possible to prototype an application using SQ

    sqlite3 — DB-API 2.0 interface for SQLite databases
  • SQLite で auto-increment なフィールドを作成する方法

    SQLite で auto-increment なフィールドを作成する方法 2006-02-12-1: [SQLite][PHP][MySQL] PHP のマニュアルの sqlite_last_insert_rowid の項目を見ていたら Tip: You can create auto-increment fields in SQLite by declaring them as INTEGER PRIMARY KEY in your table schema. つまり,SQLite で auto-increment なフィールドを作りたければ, INTEGER PRIMARY KEY を指定してあげればいいらしい. このような記述を見つけたのでテストしてみた. - SQLite 2.x の場合 $ sqlite test.db SQLite version 2.8.16 Enter "

  • データベースを用いたセッションデータ管理について - LukeSilvia’s diary

    Web アプリケーションとは切っても切れないセッション機構。DB ベースでセッション管理を行なって得られた知見と、それを元に考察した結果をまとめてみます。 セッションデータの特性 DB で管理される他のデータに比べ、セッションデータはかなり特殊です。主な特徴は次のような感じ。 データが増加するのが速い 定期的な削除が必要 頻繁に更新される リクエスト毎に読みに行く必要がある このデータを読めないとアプリケーション全体にアクセスできない アクセス頻度が高いということです。あと、1つ目の特徴からセッションデータについては意識的に管理してやる必要があります。 現在の環境 アプリケーションの領域が少し特殊で、セッションデータがやたらたまります(ユーザ数何百万のサービスとかそういうのではないです)。 RDBMS MySQL 4.0.22 ストレージエンジン InnoDB レコード数 6千万 テータサ

    データベースを用いたセッションデータ管理について - LukeSilvia’s diary
  • 第1回 SQL流 条件分岐(1) ウォーミングアップ | gihyo.jp

    はじめに 私たちが通常、C言語やPerlJavaなどの手続き型言語(またそれに基礎を持つ言語)を使ってプログラミングを行う場合、最も多用する基的な制御構造が分岐とループです。この2つを使わずにプログラミングしろ、と言われたら、それはかなりきつい制約になるでしょう。腕試しや暇つぶしに試すにはおもしろいかもしれませんが、およそ実務的なコーディングは不可能になるに違いありません。 話は、SQLとデータベースの場合でも同じです。SQLにおいても、やはり分岐とループは非常に重要な役割を果たす機能であり、SQLプログラミングの際にこの2つの機能を欠かすことはできません。しかしながら、手続き型言語を使いこなすプログラマの多くが、なぜかSQLを使う段になると思い通りの制御構造を記述できないことに苛立ちを感じ、結果、非効率的なSQL文が多く生み出されています。これはなぜでしょう? SQLで分岐とループを

    第1回 SQL流 条件分岐(1) ウォーミングアップ | gihyo.jp
  • 第5回 SQL流行間比較(1) はじめに | gihyo.jp

    まずは、各行について過去の直近の行を求めてみましょう。OLAP関数を使える実装ならば、リスト1のような簡潔な書き方で実現できます(実行結果は図1:注2⁠)⁠。 リスト1 過去の直近を求める(OLAP関数:現在のところ実装依存) SELECT sample_date AS cur_date, MIN(sample_date) OVER (ORDER BY sample_date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS latest FROM LoadSample; 図1 リスト1の実行結果 cur_date latest -------- -------- 08-02-01 08-02-02 08-02-01 08-02-05 08-02-02 08-02-07 08-02-05 08-02-08 08-02-07 08-02-12

    第5回 SQL流行間比較(1) はじめに | gihyo.jp
  • クエリーセットのfilterメソッド - at_yasuの日記

    よく忘れてGoogle先生に尋ねる羽目になるのでメモ書き。 Djangoのデータベースラッパであるfilterを使う時、SQLで言う「where a like ...」や「where a > 0」とかを、filterではどう書くのか忘れます。例えば完全一致だと、SQLの場合は「where a == ...」ですがfilterの場合は「filter(a__exact=...)」ないしは「filter(a=...)」となります。 ちなみに、DBソフトによっては、大文字小文字区別が無かったりします。 挙動 SQL上での演算子 Django Filter 例 完全一致 = a*1 a = ... 完全一致 = exact a__exact=... 大文字小文字区別無しの一致 iLIKE '...' iexact a__iexact=... 大文字小文字区別有りの部分一致 like '%...%'

    クエリーセットのfilterメソッド - at_yasuの日記
  • 転送中

    リダイレクトします 以前ここにあったブログは、現在 http://blog.srengine.com/2008/03/python-djangosql.html にあります。 リダイレクトしますか。

  • http://www.databasecolumn.com/2008/01/mapreduce-a-major-step-back.html