タグ

databaseに関するrdcsのブックマーク (29)

  • MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記

    MySQLでテーブルへのカラム追加、インデックス追加やテーブルの再編成などを行うと、その間テーブルに共有ロックがかかってしまいます。そのためこれらのメンテナンス処理は、通常利用者の少ない深夜早朝帯にサービスを止めて実施する必要があります。日はそれを無停止、オンラインのままでできないかという話題です。 基的なアイデア メンテナンス対象の元テーブルをコピーして、作業用の仮テーブルを作ります 仮テーブルに対して、カラム追加などの変更を加えます その間、元テーブルに対して行われる更新処理について差分を記録しておきます 仮テーブルの変更が終わったら、記録しておいた差分データを仮テーブルに反映します 差分データの反映が終わったら、元テーブルと仮テーブルを入れ替えます これと似たようなことを考えた方は結構いらっしゃるのではないでしょうか。ただ、言うは易し、行うは難しです。整合性がきちんと取れるかどう

    MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記
  • 分散トランザクションに挑戦しよう!

    では、複数のデータベースに対してアクセスする場合、どのようにすれば原子性を保証できるのでしょうか。これを解決するのが、図 2 に示す 2 フェーズコミットと呼ばれる方法です。 2 フェーズコミットでは、図 2 のようにトランザクションのコミット処理を 2 段階のフェーズにわけることによって原子性を保証します。ちなみに図 2 の UML 表記は、厳密ではありません。どのようなメッセージが交換されるのかについてのみ注目してください。 第 1 フェーズでは、まず、各データベースに対してコミットできる状態であるかどうかを確認するための準備 ( 図 2 の prepare ) の指示を送ります。これを受けた各データベースは、コミットできる状態かどうかをアプリケーションに伝えます。この処理を「投票する」と呼びます。コミットができる状態であれば、コミット予定の内容を確定させた後、アプリケーションに対して

  • @IT:連載記事 「連載記事 「データベーススペシャリスト試験攻略のツボ」

    試験の押さえどころを総ざらい! データベーススペシャリスト試験攻略のツボ(0) 連載初回はテクニカルエンジニア(データベース)試験対策を一挙公開! 今後のスキルアップを目指す方もいちど目を通して

  • 【Ubuntu】JDBCドライバをインストールする - Stay hungry. Stay foolish.

    日から一週間、田町でJava研修を受けています。 主な内容は、JDBCやサーブレット、JSP、UMLなどについてです。 復習しないと忘れてしまうので、家に帰ってきてから いろいろと試しています。 日はJDBCドライバをUbuntuに入れてみたので、 その方法を残しておきます。 JDBCドライバとは?? JavaDBにアクセスするときに、そのAPIとなるものです。 Java <-----> JDBC <-----> DBMS(MySQLとかOracleとか) ^^^^ 上のような感じで、間に入ることで、DBによる差分を 吸収してくれます。 なので、基的にJavaのソースに手を入れる必要はありません。 JDBCドライバは、無料で提供されているものもありますが、 企業が有料で提供しているものもあります。 今回は、MySQLのJDBCドライバをインストールします。 手順 # インストール

    【Ubuntu】JDBCドライバをインストールする - Stay hungry. Stay foolish.
  • DB設計の神ツール「ERMaster」なら、ここまでできる

    DB設計の神ツール「ERMaster」なら、ここまでできる:ユカイ、ツーカイ、カイハツ環境!(11)(1/3 ページ) 無料のEclipseプラグイン「ERMaster」とは データベースのテーブル設計を行うときに皆さんは、どのようにしているでしょうか? いくつかの無料で利用できるツールが提供されているので、筆者はそれらを利用していましたが、最近「ERMaster」と呼ばれるEclipseプラグインの存在を知りました。 ERMasterは、ほかのツールに比べ、直感的で分かりやすいUI(ユーザーインターフェイス)に、カスタマイズ可能な、Excelで出力できるテーブル定義書、辞書機能など痒いところに手が届くERモデリングのツールです。稿では、このERMasterについてご紹介します。 ERMasterの主な特徴、8つ ERMasterには、主に次のような特徴があります。 【1】直感的で使いや

    DB設計の神ツール「ERMaster」なら、ここまでできる
  • MySQL InnoDBだけで全文検索 - SH2の日記

    実験エントリです。 予習してみる 「転置インデックス」というキーワードで検索して、しばらく勉強してみます。 転置インデックス - Wikipedia mixi Engineers’ Blog » 転置インデックスを実装しよう ASCII.jp:悟空、秘剣「転置インデックス」を手に入れる |Googleはなぜ的確に探せるのか? [を] 転置インデックスによる検索システムを作ってみよう! 転置インデックスで学ぶ検索エンジンの中身アプリ - 睡眠不足?! うーんなるほど。分かったような分からないような。 作ってみる とりあえず、Twitter4Jを使ってこんなデータを用意しました。ちなみに人選は漢(オトコ)のコンピュータ道: MySQLerのTwitterアカウントまとめ。を参考にさせていただきました。 5707049458,2009-11-14 20:28:34,sakaik,@hbstudy

    MySQL InnoDBだけで全文検索 - SH2の日記
  • 転置インデックスを実装しよう - mixi engineer blog

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

    転置インデックスを実装しよう - mixi engineer blog
  • 転置インデックス - Wikipedia

    転置インデックス(てんちインデックス、Inverted index)とは、全文検索を行う対象となる文書群から単語の位置情報を格納するための索引構造をいう。転置索引、転置ファイル、逆引き索引などとも呼ばれる。 概要[編集] 情報処理テクノロジにおける転置インデックスとは、単語や数字といった内容から、それが含まれているデータベースやドキュメント群へのマッピングを保持するという、インデックス型データ構造である。ドキュメント群へのマッピングの場合、検索エンジンが実現される。転置インデックスファイルは、インデックスというよりはデータベースと呼んだほうがふさわしい場合もある。また、検索キーが単語(文字列)であり、連想配列の値が位置情報である場合、ハッシュテーブルの形態を取ることもある。 転置インデックスには大きく分けて2通りの手法がある。レコード単位転置インデックス(record level inve

  • 基礎から理解するデータベースのしくみ(5):ITpro

    SQL文を実行する際のパフォーマンスに大きな影響を及ぼすものとして,もう一つ,インデックスがあります。インデックスについては,どう定義すべきかというデータベース設計上の問題と,インデックスを有効に使うためのSQL文をどう書くべきかというコーディング上の問題があります。 ここではテーブル設計上の問題を主に取り上げます。SQL文のコーディングについては囲み記事「SQL文を最速にする11のポイント」を参照してください。 インデックスは,テーブルの検索速度を向上させるためのものです。それぞれのSQL文に対して最適なインデックスを定義するのが理想的ですが,実際にはある程度限られたインデックスで,必要なパフォーマンス要件を満たすようにインデックスを定義する必要があります。加えて,どんなSQL文が実際に発行されるのかがあらかじめわかっていない場合は,適当な想定に基づいてインデックスを定義しておかなくては

    基礎から理解するデータベースのしくみ(5):ITpro
  • 実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン でも掲げたゴールである、「マスタが落ちてもぐーすか寝ていられるようにしたい」がほぼできたので、ほとんどサービスが停止することなく、フェイルオーバする様をスクリーンキャストに収めました。 埋め込みプレイヤーだと、小さくてわからないと思うので、リンク直接でみてください。 http://www.irori.org/pub/mysql-mm.mov 登場するホスト 登場するホストは2台、db901db902です。 最初は、db901が更新系クエリを受けるプライマリでdb900の浮動IPアドレスを持っています。 画面分割 画面は5分割しています。 左上 = 「select sysdate(),@@server_id」をdb900に対して(sleep 1しながら)延々と実行しまくりんぐ 右上 = ping -n

    実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ
  • 多次元データベース<データベース<情報技術の基礎<Web教材<木暮

     Web教材一覧> データベース 多次元データベース(MDDB) 学習のポイント データウェアハウスで広く利用されている多次元データベースについて,次の事項を理解する。 多次元データベースの利用分野について理解する 多次元データベースの基操作であるスライシング,ダイシング,ドリリングについて理解する スノー構造について理解する 多次元データベースの種類として,MOLAPとROLAPの特徴を理解する キーワード データウェアハウス,OLAP,多次元データベース,スライシング,ダイシング,ドリリング,スター構造,スノーフレーク構造,MOLAP,ROLAP 多次元データベースの基操作 多次元データベースの意味 データウェアハウスのように,エンドユーザーが直接にデータベースを検索加工して問題発見をしたり問題解決をする分析を主とする利用形態を,RDBの提唱者であるE.F.Coddは,OLAP(

  • 「Linux-DBシステム構築/運用入門」がすごい - あなたのシステム、ガラパゴス化していませんか? - kazuhoのメモ置き場

    松信さんがやってくれました。 ずいぶん前からデータベースの「正しい」構築と運用方法についてまとめたはないかなーと思ってました。自分はこれまで、様々なネットワークアプリケーションのプログラミングやデータベースの設計、チューニングを行ってきています*1が、問題が解決できたようには見えても、果たしてそれが最適な解決策だったのか不安に感じることがありました。それは、体系的な知識に欠けているからです。だから、網羅的な教科書がほしいなぁって思ってたんです。 とあるインターネットでこの前、松信さんから「いま書いてる」って話を聞いて、一部を見せていただいたりしたんですが、つい昨日、手元に届きました。やったね☆ 名前は「Linux-DBシステム構築/運用入門」。「入門」と銘打たれているものの、基礎的な知識から、なぜそうなるのか、どう応用すればいいのか、といった点まで広くカバーしている*2、全方位的な隙のな

    「Linux-DBシステム構築/運用入門」がすごい - あなたのシステム、ガラパゴス化していませんか? - kazuhoのメモ置き場
  • Amazon.co.jp: Linux-DBシステム構築/運用入門: 松信嘉範: 本

    Amazon.co.jp: Linux-DBシステム構築/運用入門: 松信嘉範: 本
  • 構造がわからないデータベースで検索を行うには

    はじめに データベースに含まれる特定の内容や列を検索することは、SQL Serverの管理者や開発者がよく行うタスクです。データベースの構造をよく知っている場合や、データベースがきちんと文書化されている場合なら、検索は困難なことではありません。けれども、常にそうだとは限りません。検索すべきデータベースのことをよく知らないとか、そのデータベースが文書化されていないといったケースもあるでしょう。そのようなケースで特定の内容や列を検索しようとすると、かなり苦労するはずです。稿では、この問題を解決するための方法として、列を検索するストアドプロシージャと、列名に含まれるパターンやキーワードを見つけるSELECTステートメントを使ったソリューションを紹介します。 インターネットを検索してみると、詳細がわからないテーブルや列から特定の内容を見つけ出すための使えそうなソリューションがすぐにいくつか見つか

    構造がわからないデータベースで検索を行うには
  • データセンターが「落ちる」ことを想定したグーグルのアーキテクチャ

    サーバを安全に運用する施設として構築されるデータセンターですが、グーグルではそのデータセンターですら"落ちる"ことがあると想定してアーキテクチャを構築しています。 米グーグルが今年の5月に行ったイベント「Google I/O」で、同社のGoogle App Engine datastore leadであるRyan Barett氏が行った講演「Transactions Across Datacenters (and Other Weekend Projects)」のビデオがYouTubeで公開されました。 Barett氏は、担当しているGoogle App Engineのデータベースに関してグーグルが「multihoming」(マルチホーミング)と呼ぶ複数のデータセンターを用いた処理を実現している理由として、データセンターが自然災害や停電に見舞われたり、メンテナンスなどによるデータセンターの

    データセンターが「落ちる」ことを想定したグーグルのアーキテクチャ
  • PHPアプリでGoogle Spreadsheetをデータベースとして利用しよう(1/4):CodeZine

    はじめに 連載では、PHP上で動作するアプリケーションフレームワーク「Zend Framework」と、Googleの提供するサービスを扱うための関数の集合体である「Google Data API」との連携について紹介します。Zend FrameworkのZend_Gdataというパッケージを使用することでGoogleカレンダーなどを利用したアプリケーションを開発することができます。 今回はGoogle Spreadsheet APIを使用してGoogle Spreadsheetサービスを使ってみましょう。ExcelCSVといったGoogleスプレッドシートに分類される文書をサーバ上で扱うことができます。直接編集するだけでなく、アプリケーションで使用するデータの保存場所としても利用できるので、今回はちょっとしたデータベースとして使用してみます。 対象読者 PHPの基構文は一通り理解し

    PHPアプリでGoogle Spreadsheetをデータベースとして利用しよう(1/4):CodeZine
  • Amazon.co.jp: MySQLデータベース構築バイブル: 志村和彦, 松信嘉範, 池田徹郎: 本

    Amazon.co.jp: MySQLデータベース構築バイブル: 志村和彦, 松信嘉範, 池田徹郎: 本
  • [ThinkIT] 第2回:データ構造の比較 (1/3)

    PostgreSQLでは、このデータベースディレクトリのことをデータベースクラスタと呼びます。データベースディレクトリには、設定用のファイルや起動オプション情報を格納したファイルなどが存在します。 またデータベースディレクトリには、いくつかのサブディレクトリが存在します。サブディレクトリは以下のようになっています。 pg_xlog、pg_clog トランザクション関連のログファイルを格納します。 global グローバルシステムカタログ用の各種テーブルファイルを格納します。グローバルシステムカタログとは、全データベース共通のデータベースを構成する要素(テーブルやインデックス)の情報などを格納するためのものです。 base ユーザデータベースの各種ファイルを格納します。 なお初期状態の「base」ディレクトリには、3つのサブディレクトリが存在します。そのうちの「1(template0データベ

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

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

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

    一部の組み込み系システムを除けば,業務系システムはすべて何らかのデータベースを使っており,データベースを中核にしてシステムができあがっています。データベースを押さえることは,システムの中核を押さえることにほかなりません。したがって,データベースをどのような手順で,何に基づいて設計するのかを知っておくことは,システム構築に携わるすべての人にとって不可欠です。 Part4は,データベース設計の上流工程である概念設計と論理設計にフォーカスして説明します。こうした作業はデータ・モデリングと呼ばれます。業務要件定義を解きほぐして,システムの中核となるデータベースの論理構造を決定することが目的です。 データ・モデリングの重要性については,私たちが取り扱うビジネス・システム(業務システム)が,台帳中心のシステムであるということを考えれば明らかです。江戸時代などの時代劇を見ていると問屋の番頭が蔵の中で帳簿

    Part4 初めてのデータベース設計