『 PHPで書かれた、たった1ファイルだけのMySQL管理クライアント。テーブル管理、データの一覧・編集・削除、ユーザ権限設定など。 』
向けのデータshardingプラグインおよび、どのようにしてPostgresデータアクセスが非同期クライアントAPIで改善することができるのかについて検討する。 ActiveRecord向けデータsharding データshardingとは、データベースを小さいパーティションに分割し、それらを複数のサーバに配分し、パフォーマンスと拡張可能性を改善する技法で ある。データの区分化方法は、アプリケーショ...
MySQLを使った開発において、その管理インタフェースによく使われるのがphpMyAdminだ。とても便利で使いやすいソフトウェアではあるが、長い開発の歴史の中で肥大化し、様々なニーズに対応し、そのファイル数も数多くなってきている。 テーブル構造の表示 便利になることは悪いことではないが、あまり肥大化したアプリケーションは設置の手間や、問題が発生した時の解決...
これらのコンポーネントを用意できると、大概のバッチ処理はコンポーネントの組み合わせで実装することができますので、生産効率やメンテナンス性が飛躍的に向上します。 1-2. 処理はOracleで これでコンポーネント化のメリットを理解できたと思います。では、再利用性が高く効率の良いコンポーネントを用意するためにはどうしたら良いでしょうか。 その近道に、デー...
うわさのngg.jsを調べていたらこんな表示のサイトを見かけました。 HTMLソースは以下の通り 宮城県、福島県、山形県、岩手県、秋田県<script src=http://www.XXXXXX.com/ngg.js></script> おそらく、SQLインジェクションによりSCRIPT要素を埋め込まれたものの、XSS対策がとられていたので、JavaScriptの実行はされない状態で表示されているのだと思います。 第5回 クロスサイト...
Railsの便利な機能の一つが、DBのマイグレーション機能だろう。RDBMSは便利な反面、プログラム言語と溝があり、扱いが面倒な時があった。そのため、O/Rマッピングのようなツールが作られ、状態のバージョン管理としてマイグレーションがとても便利だった。 開発しているシステムのDB構造が手軽に閲覧できる マイグレーションによってDBの構造や中身をあまり意識せずとも開...
『 WebとマルチコアCPUに特化し、ビュー/トリガ/ストアドプロシージャ/ACL無しで軽量化したMySQL 』
これを分析関数で書き換えてみます。まずは、数学の視点から集合が等しいという意味について考察してみます。数学の集合では集合の相等性を調べる公式として、次の式が成立することが知られています。 (A ⊆ B ) かつ (A ⊇ B) ⇔ (A = B) 一方、次の場合も同様です。 (集合Aと集合Bの要素数が等しい) かつ (A ⊆ B) ⇔ (A = B) 集合Aと集合Bが両方とも空集合の...
京都で行われたオープンソースカンファレンス2008 Kansaiに行ってきました。 はてなのCTO naoyaさんの発表を聞いて来たのですが、創業時から現在までのインフラ構築の工夫や苦労を語られていました。 はてなnaoyaさん はてなを支えるバックエンドシステム 関西のエンジニア業界を盛り上げたい アジェンダ はてなのサービスを支えるバックエンドシステムを解説 創業時からこれまで...
ここしばらく、水面下でBrian Akerを代表とするMySQL/SUNのエンジニアたちや、業界のオープンソースハッカーたちとMySQLをスリムダウンさせたマイクロカーネルRDBMSを開発していたのですが、本日アナウンスされたので、日本語でご紹介させていただきたいと思います。 Drizzleとは? Drizzleとは必要のないものは一切存在しない、最低限でパフォーマンス重視な「MySQLよりシンプルで、軽...
『 iPhoneのSafariがHTML5のClient-sidedatabasestorageに対応している? 』
とある勉強会でSunのエンジニアの人のプレゼンを直接聞く機会があったのでメモったことを公開します。基本的な事が多いんだろうけど、非常に参考になりました。 パフォーマンスとは スループット レスポンスタイム/レイテンシ スケーラビリティ 上記のコンビネーション アーキテクチャとは Connection Thread Pool Query Cache Parser SQLクエリをパース Optimizer Storage Engines アプリによっ...
Ruby on Railsで開発を行う際に、デフォルトで採用されるデータベースがSQLiteになっている。インストール不要で使えるとあって、最近ではPythonなどでも利用されるようになってきている。もちろんPHP、Java、Perlなどでも利用されている。 メイン画面 Ruby on Railsの開発を行うということは、通常はブラウザベースのシステムになる。そしてSQLiteで開発となれば、この選択もある意味...
」は、pgpool-IIのコネクションプール機能を使って、接続のオーバーヘッドを減らし、性能を向上させる方法について紹介しました。 今回は、レプリケーションと負荷分散について説明します。レプリケーションは可用性を、負荷分散は性能を向上させる機能です。もちろんこれらの機能は前回紹介したコネクションプール機能と組み合わせて使うことができます。 レプリケー...
本連載では、英文の資料を読みながら、英語の表現とデータベースの知識を身につけていきましょう。第1回で取り上げるのは、2008年2月4日にリリースされたPostgreSQL 8.3のプレスリリースのオリジナル原稿の抜粋です。 PostgreSQLのバージョンは3けたの数字で表されます。現在のバージョンは8.3.3で、最初の2けたをメジャー番号、最後の1けたをマイナー番号と呼んでいます。メジ...
『 正しくないSQLインジェクション対策の今昔」「SQLインジェクション対策の考え方」「SQLインジェクション対策の実際 』
本連載では、さまざまなサービスで利用されているデータベースやその仕組みについて紹介していきます。第1回は、Webアプリケーションである「TopHatenar」と「HatenarMaps」を取り上げ、そのデータベース構造とデータアクセス手法を中心に、アプリケーションの裏側について解説を行います。 まずTopHatenarとHatenarMapsとは何かを紹介します。この2つのWebアプリケーションは、と...
SQLのエスケープと聞いてやってきましたよ。2008-07-10 - T.Teradaの日記から 例えば、「\%foo」から始まる文字列を検索する場合には、どのようなSQL文を書けばよいのでしょうか。 条件は以下の通りです。 1. DBMSソフトはMySQL 2. ESCAPE節は使わない 【中略】 「\%foo」から始まる文字列を検索するSQL文は、以下のようになります。 mysql> SELECT 123 FROM dual WHERE '\\%foo456' LIKE '\\\\\\%foo%'; MySQLの...
Webアプリケーションのスケーラビリティの分野で話題となることが多いmemcachedについて,基本から内部構造まで紹介します。 Box2DでActionScript物理プログラミング Box2Dという物理エンジンを使ったActionScript3プログラミングについて解説します。Flashのデモやサンプルを通して理解していきましょう。 良いコ-ドへの道―普通のプログラマのためのステップアップガイド この連載は「...
」では、サンプルコードにより簡単なパラレルクエリを体験していただきました。これを以下の流れに沿って、簡単におさらいしていきます。 1.あらかじめデータを細切れにする 2.処理を分割 3.手分けして同時に処理' 4.結果をまとめる 「1.あらかじめデータを細切れにする」は、サンプルのデータベースを作る段階で行っています。 サンプルでは、test0というテーブルをtest1...