タグ

ブックマーク / thinkit.co.jp (40)

  • ドキュメント指向データベースと列指向データベース

  • [ThinkIT] 第5回:PHP5のオブジェクト指向 (1/3)

    <?php class Singleton { // シングルトンオブジェクトを格納する変数 private static $singleton = null; // メッセージを格納する変数 private $msg = null; // コンストラクタ private function __construct() { echo "インスタンスを生成しました\n"; } // インスタンスを生成する public static function getInstance() { if (Singleton::$singleton == null) { Singleton::$singleton = new Singleton(); } else { echo "インスタンスは既に存在します\n"; } return Singleton::$singleton; } // メッセージを格納す

    kicyon
    kicyon 2011/09/24
  • データベースの最近の変化と動向

    データベースのおさらい 今の世の中は、「情報」がすべてと言っても良いぐらいの状況になっています。日進月歩ならぬ“秒進分歩”の勢いで、次々と新しい情報が生まれ、流通し、広がっています。 大量の情報が出回る中で、それらの情報を効率よく管理し、活用することは、非常に重要になっています。このような、「データを収集・管理し、活用するためのシステム」のことを総称して、「データベース」(Database)と呼んでいます。 広い意味では、「大量のデータを集めたもの」をデータベースと捉えることもできます。例えば、図書館は大量のを集めた場所ですが、図書館もデータベースだと言えなくもないです。また、紙の住所録や電話帳も、データベースの一種だと言えます。 ただ、狭い意味でデータベースと言えば、コンピュータを使って、データを電子的に管理するシステムのことを指します(図1)。今回の連載で取り上げるのも、もちろんこの

  • ここが新しい!MySQL 5.1

    kicyon
    kicyon 2011/07/28
  • [ThinkIT] 第3回:ソースコードからApacheをインストールする基本(前編) (1/3)

    「第2回:Apacheをインストールしてみるのは難しくない」ではApacheをバイナリパッケージからインストール方法を説明しました。今回はソースコードからApacheをインストールする方法を解説します。 ソースコードからApacheをインストールする方法は次の通りです。 NO ステップ 概要

  • [ThinkIT] 第3回:アーキテクチャ比較 ファイル構造の違いPostgreSQLの特徴 (1/3)

    図1はPostgreSQLのファイル構造を示したものです。図中、四角で示したものは論理的な構造を意味し、円柱は物理的に実在するファイルを示しています。 最初にPostgreSQLをインストールした後に、データベース領域を初期化(initdbコマンドを実行)した直後には、templete0,templete1というデータベースが作成され、基構造が生成されます。 ここで言う「データベース」はOracleでいうそれとは違う意味なので注意して下さい。このとき生成されるデータベース基構造全体を指して"データベース・クラスタ"と言います。 templete0とtemplete1は文字通りユーザが作成するデータベースの雛形で、ユーザが新規にデータベースを作成した場合は、templete1がコピーされ、同じ高さに並列して作成されます。 図1には示していませんが、システムカタログは$PGDATA/glo

    kicyon
    kicyon 2010/10/11
  • [ThinkIT] 第1回:データベースを取り巻く状況 (1/4)

    これから何回かに渡り、データベースエンジンを取り巻く状況や課題、今後の技術動向などについて解説していきます。 Webサービスが当たり前の世の中になり、情報管理、アクセスをつかさどるデータベースの役割は増すばかりです。SQL言語を使ったデータアクセスは、データベースを使う上で基的かつ重要な技術です。その上データベースは、複数のアプリケーションやユーザに「同じ」データを「同時に」「矛盾なく」読み書きできる機能を提供しています。また「書いた」データを障害や誤操作から守るという重要な機能も提供しているのです。 さらに、データベースはコンピュータのメモリよりはるかに巨大な量のデータを扱うこともできますし、これらのデータが障害や誤操作で壊れることがないように守ることもデータベースの重要な役割になっています。ある意味、SQL以上に重要といってもいいでしょう。 この連載では、SQL以外のこれらのデータベ

    kicyon
    kicyon 2010/09/22
  • JavaScriptを使って描画するCanvasとは?

    Canvasとは、JavaScriptを使って動的に図を描くために策定された仕様です。これまで、動的に図を表示させる方法としては、Flashが代表的な選択肢でした。しかし、Canvasを使うことで、テキストエディタさえあれば、誰でも無料で動的に図を描くアプリケーションを作ることができるようになるのです。 手前みそで恐縮ですが、図1は筆者がCanvasを使って作った棒グラフを描くJavaScriptライブラリのキャプチャ画像です。Canvasを使うことで、簡単な図だけではなく、かなり凝ったデザインも扱うことができることがおわかりいただけると思います。 しかし、Canvasは決してFlashの代替技術ではありません。まずは、Canvasの特徴を簡単にまとめてみましょう。Canvasの特徴としては、「JavaScriptを使って描画する」「文字は描けない」「アニメーション機能がない」の3つがあり

  • [Think IT] 第7回:Apache+SSL環境を構築しよう! (2/3)

    SSLの通信で利用するには、公開鍵/秘密鍵のペアとデジタル証明書が必要です。これらは、OpenSSLに付属するコマンドを利用し生成します。 生成するファイルは、server.key(秘密鍵)、server.csr(CSRファイル:公開鍵+証明書申請情報)、server.crt(デジタル証明書)の3つとなります。 それでは、秘密鍵を生成しましょう。キーを作成する任意のディレクトリに移動後、コマンド「# openssl genrsa -des3 1024 > server.key」を入力し、実行してください。なお、筆者はconfディレクトリ配下に作成します。 Windowsの方は「C:\Program Files\Apache Software Foundation\Apache2.2\bin」配下にある「openssl.exe」に適宜パスを通し、同様にコマンド「> openssl genrs

  • PostgreSQLには絶対!pgpool-II

    Copyright © 2004-2024 Impress Corporation. An Impress Group Company. All rights reserved.

  • PostgreSQLの概要とアーキテクチャ

    はじめに PostgreSQLは多機能であることで知られた代表的なオープンソースのデータベース製品です。2001年ごろには日語の格納が不自由なく行え、トランザクションや、論理ホットバックアップ、外部結合、行ロックなどの機能をサポートしていました。また、その当時からWebサイトのバックエンドなどを中心に実用システムにもしばしば採用されてきました。 連載ではPostgreSQLの機能や性能とアーキテクチャについて、最新バージョン8.4系を元に解説します。 既にPostgreSQLを説明する記事や書籍は多いのですが、それだけに、これまで読者の皆さまが目にしたものが幾分古いPostgreSQLを対象としている可能性があります。PostgreSQLは今日でも進化のスピードを落としていません。連載で、最新のPostgeSQLについて理解いただければ幸いです。 PostgreSQLは、カルフォルニ

  • クラスタリングでPostgreSQLの可用性と信頼性を高める

    HAクラスタソフトを用意する 今回は、PostgreSQLを複数のサーバー機に配置するクラスタリング構成について紹介します。クラスタリング構成で運営すると、可用性(信頼性)や性能を向上させることができます。 PostgreSQLは伝統的に、クラスタリングのためのソフトを体には含まないという方針で開発されてきました。その代わりに体とは独立して、PostgreSQLをクラスタリング構成で運営するためのミドルウエアが何種類か開発されています。 こうしたソフトには、オープンソースのものもありますし、商用製品として販売されているものもあります。また、汎用のHA(High Availability=高可用性)クラスタ・ソフトの多くが、保護対象のリソースとしてPostgreSQLをサポートしています。 ■可用性を上げる まずはクラスタリングのメリットを知るために、基の確認をしましょう。 システムの

  • [ThinkIT] 第1回:SQLインジェクションによるデータベース操作 (3/3)

    プリペアードクエリ(プリペアードステートメントともいいます)によって、前述のリスクのほとんどを回避することができます。プリペアードクエリは、クエリのいわば'テンプレート'です。クエリの構造をあらかじめ定義して変更できないようにしておくのですが、その中には実際のデータを配置するプレースホルダが含まれています。 プレースホルダでは、例えばintは整数データ、textは文字列というように、データベースがそのデータを厳密に解釈するように型が特定されています。つまり、text型のプレースホルダならいつでも文字列として解釈することで、クエリのスタックを使ったSQLインジェクションのような攻撃を防ぐのです。 プレースホルダの型と中のデータが一致しなければ実行エラーとなり、クエリをより厳密にチェックすることができます。クエリの安全性確保に加えて、プリペアードクエリにはパフォーマンスを向上させる効果もありま

    kicyon
    kicyon 2010/05/19
  • pgpool-IIのインストール方法

    pgpoolとは pgpoolとはPostgreSQL専用のコネクションプーリングサーバーです。2004年にファーストバージョンがリリースされ、2006年にはパラレルクエリなどの新機能を実装したpgpool-IIが登場し、その後もオンラインリカバリーなどの新しい機能を次々と実装しながら進化を続けています。 最近では、非同期レプリケーションシステムとして人気の高いSlony-Iとの組み合わせや、PostgreSQL 8.2からの新機能であるwarm standbyとの組み合わせといった新しい活用方法も注目されています。 連載では、多様なpgpool-IIの活用方法の中から最もよく使われているコネクションプーリングとレプリケーションを中心に活用方法を解説します。 第1回はpgpool-IIの機能の簡単な紹介とインストール方法について解説します。 多機能ミドルウエアpgpool-II pgpo

  • [ThinkIT] 第1回:PDOの概要 (1/3)

    PHPの経験がある人ならばデータベースを扱うのにPHPを使用したことがあると思います。多くの場合、データベースはデータの収集と解析を目的とした柔軟性のある情報ストレージとして使用され、開発者のコミュニティで一般的によく使用されています。多くの一般的なツールでは、1つの問題に対して多くのアプローチがとられますが、データベースシステムでは標準機能の違いはほとんどありません。 情報を扱う理想的な方法として、いくつものデータベースシステムが競合しています。数百万人の開発者が使用しているPHP言語では、1人の開発者も取り残されないようにこれらのデータベースエンジンの大部分をサポートしています。 PHPでのデータベースのインタフェース開発は、理想的なデータベースとの通信方法を考え抜いた初期設計の通りには完成しないことがほとんどです。というのも、開発者が馴染みのないデータベースにPHPを接続させなければ

    kicyon
    kicyon 2010/04/22
  • [ThinkIT] 統合監視ツールZABBIX事始め

    社内・社外を問わず、IAサーバがITシステムの中核に導入されることは珍しくなくなってきました。特に、Webアプリケーションサービスを行う場合、主にIAサーバとLinuxまたはWindowsという組合せでシステムを構築されていることでしょう。 IAサーバは比較的安価なため、リソースが不足しても追加購入してシステムを容易に増強することができます。これは大きなメリットですが、管理面では負担の増加が避けられません。数台規模ならば手作業で個々のサーバを管理できますが、数十台〜数百台規模となってくると、某CMではありませんが「増え続けるサーバの管理に困っていませんか?」という状況になるのは想像に難くありません。 システムを効率的に管理するためには、まずサーバのハードウェアリソース、そしてその上で稼働するOSやアプリケーションの状態を適切に把握できることが重要です。シェルスクリプトなどを利用して監視/通

  • [ThinkIT] 第6回:query_cache_sizeの違いによるパフォーマンス比較 (2/3)

    必要な情報も出揃ったところで、クエリキャッシュをONにした状態での測定結果をみてみましょう。どの程度変化があったのかわかるように、クエリキャッシュをOFFにした状態での測定結果と並べたのが図1です。 これまでX軸は時系列でしたが、今回は別々の時間に測定した2つのデータの比較ですので、Super Smackで指定した同時接続数をX軸としています。 結果をみるとクエリが検索(SELECT)だけなので、かなり良い結果が得られたことがわかります。クエリキャッシュがOFFの場合のQueries_per_secは1,250程度でしたが、ONの場合は3,000程度となり、2倍以上の速度という結果でした。

    kicyon
    kicyon 2010/02/23
    query_cache_sizeの不足に関してはQcache_free_memoryとQcache_lowmem_prunesを見る。
  • [ThinkIT] 第5回:key_buffer_sizeの違いによるパフォーマンス比較 (3/3)

    Queries_per_secについてはいつも通りですが、今回は左側Y軸をKey_read_requests/Key_readsの比率としました。ただしkey_buffer_sizeデフォルト状態での測定結果において実際には常にKey_reads=0で、ディスクからの読み込みはありませんでした。ですが、これでは比率を計算できませんので、Key_reads=1と仮定して計算しました。 デチューン後のグラフを見れば一目瞭然ですが、測定の最初からキーバッファが不足しており、Key_reads_requests/Key_reads比が30程度のまま推移しています。また比率が0になっている箇所がありますが、この際にはMySQLサーバが高負荷のため接続できずに測定不能でした。また、後半1/4以降も完全に測定不能でした。 以上から、キーバッファが埋まってしまうことは危険であることがわかります。もし各カラ

    kicyon
    kicyon 2010/02/22
    key_buffer_sizeの適正値:1.Key_read_requests/Key_readsが100~150以上であること。2.Key_block_unusedが0とか小さい値ではないこと。
  • [ThinkIT] 第1回:定量的な情報収集のススメ (1/3)

    MySQLサーバに限らず、大量のアクセスを処理するデータベースやアプリケーションサーバ群に対して、それぞれの環境に合わせたチューニングを行うことは企業システムにおいて必須の項目です。しかし「チューニングすべきパラメータとその最適値をどのように決定すればよいのか」、また「実際にチューニングを施すことによってどの程度効果があったのか」を把握することは意外に難しいものです。 ですが、敢えていえば答えは明瞭で、「定量的な情報収集と分析」の他にないでしょう。あらかじめ情報を収集しておけば、チューニング前後でのデータを比較することによってどのような変化が起きたのかを知ることができます。 連載では、まずはMySQLサーバにおいて収集すべき情報を提示し、その後、それらを利用した基的なパラメータについてのチューニング方針を紹介します。 また、今回はOSにCentOS 5.0、データベースにMySQL 5

  • 「Nagios」「Hobbit」「ZABBIX」「Hinemos」を徹底比較 | Think IT(シンクイット)

    コストメリットを確保するオープンソース/フリーソフトウェア 近年、IAサーバの価格が非常に安価になり、LinuxWindowsを用いたシステムが普及しています。IAサーバを採用したシステムでは、ス ケールアウトを行うように設計することでハードウェアのコストメリットが生まれます。しかし管理するサーバ台数が増加してしまうため、管理コストはそれに 反して増加する傾向があります。 システム全体を効率よく管理するためには、まずサーバのハードウェアリソースやネットワーク、OS、アプリケーションなどの状態を適切に把握できる ことが重要になります。そのため、常にシステムの稼働状況のデータを収集・監視する「監視システム」が必要とされています。 大規模システムではシステムを監視するために、大手ソフトウェアベンダーが販売する統合管理ツールを用いたり、データセンターが提供する監視サービ スを利用することが一般的