Webサイト構築で面白いのは、つい先日までどう見ても小規模なユーザーベースで動作していたサイトが、瞬く間に数万人、数十万人のユーザーを抱えることになったりする*ことです。また、最初は小規模だったアプリケーションが、少しずつ改善していくうちに、大規模なアプリケーション*になることがあります。本稿では、徐々に大きくなるWebアプリケーションをスケーラブ...
六本木ヒルズで開催されたライブドア次世代テクノロジーセミナーに、会社の同僚の秋元さんと一緒に行って来ました。 当社は長い受託ビジネスやWEB開発から蓄積した、膨大な経験と実績を使い、現在UU14,336千人、月間約22億PVというポータルサイト 「livedoor」を構築するまでになりました。そこには飽くなきローコストへの挑戦と、多くの優秀なエンジニア、更には膨大なインフ...
『 OSSiPedia(オーエスエスアイペディア)は、OSS関連情報データベースです。OSSの利用促進を進めることを目的とし、OSSの活用事例、技術情報、またオープンソースに関する基本的な知識を整 』
かなりながーいエントリになる予定なので,結論だけ最初に書くとこんな感じ. 最速配信研究会 - 「コネクションプーリング都市伝説」はほんとに都市伝説?(その1) この話題については自分も あとで書く と言って書いてなかったので書いてみますよ。2006年の下期にもなってコネクションプーリングかよというツッコミもありそうですが、あとで書くといったら書くの。あと読むと...
『 コメント欄も要読。php-wオプションの紹介。文字列は変数埋め込みより「'」結合のほうが速いみたい。あと否定的なコメントが目立つ。既存のコードを書き換えるには利益が少なすぎるみたい 』
一昨日から今日まで3日間の日程で開催されていた、MySQL Conference & Expo 2007に行ってきました。日帰り圏内どころか、自転車圏内で、こういうカンファレンスがあるのは、素晴しいです。 詳細は、随時アップされるであろうプレゼン資料と、Planet MySQLに大量の報告があります(全部英語ですけど)。 個人的に注目していたのは、Digg.com、Flickr.comとYoutube.comのDB周りアーキテクチャの...
http://www.mysql.gr.jp/mysqlml/mysql/msg/9530 で話題になっていたように、 ver. 4.1以降、クライアント/サーバー間でキャラクターセットが自動的に 変換されるようになったことに伴い、多くの方が文字化けといった問題に 悩まされていたかと思います。 この点については開発側に改善を要求してきましたが、4.1.15にて "--skip-character-set-client-handshake" というオプションが導入されました。 http:...
バックアップするのが面倒なMySQLデータベースを自動的にバックアップできるようになるスクリプトです。 いくつものデータベースを一括でバックアップできます。1つのファイルとしてまとめてバックアップすることもできるし、各データベースごとに分けてバックアップすることもできます。バックアップファイルはgzipかbzip2で圧縮されているのでディスク容量も食いません。...
これはちょっと使ってみたい。忘れないようにメモ的エントリー。 htmlSQLはPHPで使うライブラリです。これを使えばHTMLの要素をSQLちっくに取り出すことができます。例えば次のような命令が書けるようになります。 ↑ わかりやすいっす。 ちょっとあのページのタイトルだけ取り出したい、あのリンク集のURLだけ取り出したい、といったときに便利そうですね。ソースを勉強して...
世間では PHP が、Perl が、と盛り上がっているようですが空気を読まずまたカーネルの話です。今回はページキャッシュについて。 /dev/shm に参照系DBを持っていくと I/O 負荷が激減した件(当たり前だけど) :: Drk7jp で、ディスク上にあったファイルを /dev/shm (tmpfs) に移したら I/O 待ちがなくなって負荷がさがった、ということなんですがおそらくこれは tmpfs に置く必要はないか...
サンフランシスコ発--大手データベースベンダーOracleが、オープンソースデータベースメーカーのMySQL買収を試みた。これは、Oracleが、重要性の高まる協調プログラミングの理念に合わせて大きく変わろうとしていることを示している。 多角化を進めてはいるが、Oracleの本業は自社開発のデータベースソフトウェアを販売することだ。これとは対照的に、競合オープンソース製品...
『 database.ymlのencoding:uft8が不要になった!テーブル作成時のDEFAULTCHARSET=utf8が不要になった! 』
躍進するローエンドなオープンソースデータベースに対抗しようと、Oracleが自社のデータベース製品の無償版のリリースを決めた。 Oracleでは米国時間1日に「Oracle 10g Express Edition(Oracle Database XE)」のベータ版を発表し、2005年末までに正式版の提供を開始する予定だ。学生や小規模な組織、Oracleデータベースをアプリケーションと連携させることのできるソフトウェアベンダーな...
MySQL 互換の断然日本語が使いやすいオープンソースデータベースが MoSQLです。 以下の点が MySQL と異なるので萌え萌えです。 デフォルトの文字コードは UTF-8 です。 (デフォルトでは)文字コードの自動変換は行ないません。 文字コードの範囲外のバイト列でもそのまま格納されます。データが失われることはありません。 クライアントライブラリは環境変数により文字コードを指...
トランザクション機能をサポートしているのは、PostgreSQLとMySQL+InnoDBエンジンであり、MySQL+MyISAMエンジンはトランザクション機能をサポートしていません。ここでのトランザクション機能とは、複数のテーブルやレコードに影響をおよぼす処理を1つの単位とみなし、この単位での処理結果を保証する機能を指します。 具体的には、BEGIN文にてトランザ...
http://d.hatena.ne.jp/hoshikuzu/20060211#P20060211PHPSQLINJECTION セキュリティmemoにaddslashesよるエスケープ処理でSQLインジェクションが可能なるという記事を見つけました。 私のセミナーを聞いたことがある方は「addslashesによるエスケープ処理は止めましょう」と言っていた事を覚えているでしょうか? mysql_real_escape_string()やpg_escape_string()等のデータベース専用のエスケープ関数を使いましょう、...
MySQLの演算子や関数について説明します。 なお、個人的に必要無いと思うものについては省略しています(笑)。 最初に MySQLでは、数値⇔文字列の変換は自動的に行われます。 SELECT 100 + '200' -> 300 SELECT 100 < '200' -> 1 (TRUE) SELECT 100 < '22' -> 0 (FALSE) 比較演算子 比較演算の結果は、1(TRUE) / 0(FALSE) / NULL のいずれかになります。 例を挙げます。 SELECT 1 = 1 -> 1 SELECT 1 = 3 -> 0 SELECT 1 = NULL -> NUL...
『 SQLInjection 』
komagataです。 Webアプリケーションのパフォーマンスの大半はデータベース、特にインデックスの使われ方にかかっている気がします。 仕事でもMySQLをよく使いますが、MySQLでは1テーブルに付き1インデックスしか使われません。PostgreSQLなどと比べてそのことが気になってMySQLでのパフォーマンスチューニングに全く自信が持てませんでした。 オライリーの実践ハイパフォーマン...
MySQLサーバに限らず、大量のアクセスを処理するデータベースやアプリケーションサーバ群に対して、それぞれの環境に合わせたチューニングを行うことは企業システムにおいて必須の項目です。しかし「チューニングすべきパラメータとその最適値をどのように決定すればよいのか」、また「実際にチューニングを施すことによってどの程度効果があったのか」を...