『 PHPで書かれた、たった1ファイルだけのMySQL管理クライアント。テーブル管理、データの一覧・編集・削除、ユーザ権限設定など。 』
そもそも、なぜクライアントマシンにWebサーバや言語の実行環境を入れる必要があるのかを考えてみましょう。前述のとおり、LL言語などの簡易言語ではエディタで記述したソースコードそのものが実行エンジンなどにロード・実行されます。そのため、コンパイラなども必要なく、コードを「書く」だけであればエディタで事足ります。クライアントマシン上でコードを実行さ...
MySQLを使った開発において、その管理インタフェースによく使われるのがphpMyAdminだ。とても便利で使いやすいソフトウェアではあるが、長い開発の歴史の中で肥大化し、様々なニーズに対応し、そのファイル数も数多くなってきている。 テーブル構造の表示 便利になることは悪いことではないが、あまり肥大化したアプリケーションは設置の手間や、問題が発生した時の解決...
Railsの便利な機能の一つが、DBのマイグレーション機能だろう。RDBMSは便利な反面、プログラム言語と溝があり、扱いが面倒な時があった。そのため、O/Rマッピングのようなツールが作られ、状態のバージョン管理としてマイグレーションがとても便利だった。 開発しているシステムのDB構造が手軽に閲覧できる マイグレーションによってDBの構造や中身をあまり意識せずとも開...
『 WebとマルチコアCPUに特化し、ビュー/トリガ/ストアドプロシージャ/ACL無しで軽量化したMySQL 』
京都で行われたオープンソースカンファレンス2008 Kansaiに行ってきました。 はてなのCTO naoyaさんの発表を聞いて来たのですが、創業時から現在までのインフラ構築の工夫や苦労を語られていました。 はてなnaoyaさん はてなを支えるバックエンドシステム 関西のエンジニア業界を盛り上げたい アジェンダ はてなのサービスを支えるバックエンドシステムを解説 創業時からこれまで...
ここしばらく、水面下でBrian Akerを代表とするMySQL/SUNのエンジニアたちや、業界のオープンソースハッカーたちとMySQLをスリムダウンさせたマイクロカーネルRDBMSを開発していたのですが、本日アナウンスされたので、日本語でご紹介させていただきたいと思います。 Drizzleとは? Drizzleとは必要のないものは一切存在しない、最低限でパフォーマンス重視な「MySQLよりシンプルで、軽...
とある勉強会でSunのエンジニアの人のプレゼンを直接聞く機会があったのでメモったことを公開します。基本的な事が多いんだろうけど、非常に参考になりました。 パフォーマンスとは スループット レスポンスタイム/レイテンシ スケーラビリティ 上記のコンビネーション アーキテクチャとは Connection Thread Pool Query Cache Parser SQLクエリをパース Optimizer Storage Engines アプリによっ...
Ruby on Railsで開発を行う際に、デフォルトで採用されるデータベースがSQLiteになっている。インストール不要で使えるとあって、最近ではPythonなどでも利用されるようになってきている。もちろんPHP、Java、Perlなどでも利用されている。 メイン画面 Ruby on Railsの開発を行うということは、通常はブラウザベースのシステムになる。そしてSQLiteで開発となれば、この選択もある意味...
大量のデータを1つのテーブルに格納すると何かと不便となる。処理対象が大量だけに検索をはじめとして処理時間が大きくなる。現実の生活は、手に余る大量の物を小分けにするというテクニックをよく使う。データベースでもこの手法は有効である。大量データを小分けにすることで、処理の高速化と格納効率を向上することが可能である。今回は、MySQL 5.1の新機能の筆頭に...
本連載では、さまざまなサービスで利用されているデータベースやその仕組みについて紹介していきます。第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...
実際にLAMP環境で並列処理を試して、並列処理を体験していこう。
MySQL ClusterはMySQL Serverのストレージエンジンの1つであり、「並列」「負荷分散」「高可用性」という特徴を備えています。 ストレージエンジンであるため、MyISAMやInnoDBと同じようにテーブル定義においてENGINE=NDBCLUSTERとすることで、MySQLのデータを格納する実体として利用することができます(100%完全にというわけにはいきませんが、MySQLではユーザーが特にクエリを変更しな...
最近のWebサービス開発ではオープンソースのデータベースを利用することが多くなってきた。それだけ信頼性や安定性も向上してきたということだろう。以前はPostgreSQLの方が人気があったが、最近ではMySQLを選ばれる方が多いようだ。 mk-parallel-dumpのヘルプ そうした中で、必要になってくるのがMySQLの管理ツールだ。特に規模の大きな開発を進める上で、デフォルトのツールだ...
開発部 システム運用グループの長野です。普段はミクシィのアプリケーション運用を担当しております。今回から数回にわたり,最近Webアプリケーションのスケーラビリティの分野で話題になっているmemcachedについて,弊社開発部 研究開発グループの前坂とともに,使い方や内部構造,運用について解説させて頂きます。 memcachedとは memcachedは,LiveJournalを運営していたDanga Interac...
ブログは自分のドメインで立てるか、またはASPのサービスを使うかのどちらが多い。運用が面倒であればASPのが良いが、アイデンティティを確立するなら専用のドメインを取得した方が良い。 ブログ画面 そして自分で運用する場合は何らかのブログエンジンを選択する必要がある。WordPress、Nucleus、MovableTypeなど様々に存在するが、そうしたメジャー系でないものが良い方はこ...
ネタ元:キケンなSQLインジェクション SQLインジェクション対策へのアプローチとしては正しいのだけど、1点だけ気になる点が。。。 もし、悪いやつが「";DELETE FROM geekDB;」なんて入力したら、なんとデータが消えてしまうΣ(゚Д゚) 実はこれではDBのデータを消すことはできない。 $sql="select * from geekDB where id = " . $id; $result = mysql_query($sql); mysql_query関数は複合クエリに対応していない...