サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
NTT オープンソースソフトウェアセンタ 板垣 貴裕 共通表式 WITH 句と再帰SQL (WITH RECURSIVE) は PostgreSQL 8.4 の新機能です。WITH と WITH RECURSIVE それぞれの説明と、実際の利用例として再帰クエリを使ったロック競合解析の方法を解説します。 共通表式 WITH 句 あるクエリの中で他のクエリの結果を使う方法には、既にサブクエリがあります。WITH 句は、サブクエリの結果に名前をつけ、クエリの複数の箇所からその結果を参照するための構文です。そのクエリの中だけで使用できる一時表 (TEMP TABLE) を作るのに近い動作になります。 利用例としては、あるサブクエリの結果を複数の列と比較する場合が挙げられます。例えば以下のように、表 keyword_list から取得した結果を、表 document の keyword1, key
皆さん、はじめまして。本連載を担当するビーブレイクシステムズの山之内と申します。本連載ではO/Rマッピングについて検討していきます。 O/Rマッピング機能を提供してくれるフレームワーク(O/Rマッピングツール)はデータベースと連携するJavaアプリケーション開発において、既に必須となりつつありますが、O/Rマッピングツールはたくさん存在します。 しかし、各O/Rマッピングツールには特徴やクセがあり、実際の開発現場においてどのO/Rマッピングツールを導入すべきか迷っている人も多くいることでしょう。目的にあわせて適切なツールを選択しないと、思ったような効果が得られなかったり、かえって工数が増えたりする状況にもなりかねません。 そこで本連載では、代表的な3つのO/Rマッピングツール(iBATIS、Torque、Hibernate)を取り上げて、実際に各O/Rマッピングツールを利用したサンプルを作
これだけ見れば大丈夫!ーMySQLパフォーマンス監視のツボ(クエリ編) こんにちは、インフラ担当新人の nob です。 サーバー監視ツールで MySQL を監視しているのにデータが多すぎて活用していない。という方はいませんか?その豊富なデータをパフォーマンス・チューニングに活用しない手はありません。今回はサーバー監視ツールのグラフを読み解いた実戦経験を元に、「これだけ見れば大丈夫」というツボをまとめてみました。 これだけ見れば大丈夫! クエリ編 3つのつぼと5つのグラフ (その1)監視ツールが何を見ているのか知る (その2)監視のキモ、グラフ3点セット (Questions, Lock Waits と Transaction Handler) (その3)グラフでチェックする SQL チューニング ( Select Type と Handler) シンプルでお勧め、サーバー監視グラフ化ツール
これだけ見れば大丈夫!ーMySQLパフォーマンス監視のツボ(システム編) こんにちは nob です。 前編 これだけ見れば大丈夫!ーMySQLパフォーマンス監視のツボ(クエリ編) の記事から1年半が経過してしまいました。ちょっと長いお休みでしたが、その間に蓄えた MySQL パフォーマンス監視の実戦経験を(システム編)としてお届けいたします! 今回の(システム編)で紹介するツボは 4 つです。(クエリ編)のツボに加えて、この4つに注目して頂ければ MySQL のパフォーマンス監視もバッチリです。 (ツボ1)Load Average < (1 + (cpu数-1)/3) (ツボ2)Checkpoint Age が水平線になったら要注意 (ツボ3)MyISAM は無いよね監視 (ツボ4)万能選手スローログ なお前編と同様この記事では監視ツールとして Cacti と Percona MySQL
毎日暑い…。というか蒸し暑い。何年か前にベトナムとカンボジアをバックパッカー旅行したときを思い出す。日本の気候が亜熱帯ってか東南アジアっぽくなってきたような…昔はこんな頻繁にゲラリ豪雨とか降らなかったよねー?温暖化ってやつ?日本の植生とか変わるんじゃねーのかな…。 えーと、おれがよく見ている技術ブログの一つにPercona社のMySQL Performance Blogがある。そのブログに先日、「Why is the ibdata1 file continuously growing in MySQL?」という記事が投稿された。内容はInnoDBのibdata1の肥大化とその解消方法に関するもの。ibdata1の肥大化を解消する手段は、ダンプをとってDBを作り直してあげないと治らないということは多くのInnoDBユーザが知っていることだと思うけど、おれもInnoDBを触り始めたころは、「気
問題 日本語を含むSQLを実行したいんだけど、できない! ssh端末で日本語が入力できない。 日本語が化ける。 文字コードが合わなくて通じない(ソースはUTF-8、データベースはEUC)。 答え MySQLだと、HEX関数、CHAR関数を使ったこんな手がある。 EUC-JPで「内藤さん」を探したいとき。 1、どこか日本語が通じるところで下ごしらえ select hex('内藤'); → C6E2C6A3 「内藤」のujisでの16進表現が確認できた。 下ごしらえはphpでやってもよい。 //EUC-JPのソースで var_dump(unpack('H*', '内藤')); //→ c6e2c6a3 2、問題の環境でSQL実行 16進表現を元の文字列に戻したり(0xつける) select * from dtb_customer where name01 = char(0xC6E2C6A3);
インメモリデータベース、カラム型データベースは使い物になるのか? インメモリとカラム型データベースの可能性を調べる(その1) ERPベンダ最大手のSAPは2010年、新規に開発したデータベース「SAP HANA」(当時の名称は「SAP High-Performance Analytics Appliance」)を発表しました。 HANAの製品化を背景に、SAPは2012年5月にデータベース市場への本格参入を宣言し、オラクルやIBM、マイクロソフトとデータベース市場で競合していくことを表明。そして今年2013年2月にはついにERPと組み合わせた「SAP Business Suite powered by SAP HANA」の出荷を開始し、業務アプリケーションのバックエンドデータベースとしてHANAの本格利用を開始しました。 HANAには、これまで主流だったリレーショナルデータベースとは異なる
mysqlvizはMySQL/SQLiteの構造を可視化するライブラリです。 DBを使ったシステムを構築していると必要になるのがER図ではないでしょうか。そんなER図を実際のデータベースのダンプファイルをベースに描き出すのがmysqlvizです。 ヘルプです。 まずdotファイルを生成します。 さらにdotファイルをpngに変換して得られた結果です。 mysqlvizはMySQLとSQLiteに対応しています。MySQLの場合はダンプファイル、SQLiteの場合は実際のデータベースファイルを読み込んでdotファイルを出力します。後はGraphvizを使ってPNG画像に変換する仕組みになっています。 mysqlvizはPHP製、GPL v3のオープンソース・ソフトウェアです。 MOONGIFTはこう見る mysqlvizの面白いところはMySQLについてはダンプファイルを使っているということ
新入社員必読、データベースの基本を理解しよう - データベースはなぜ必要なの?:ITproという記事に対するブクマで次のようなIDコールが来た。(現在はコメント返しへのお礼が入っているので、文字数制限のためオリジナルのコメントは少し切り詰められている。) "リレーショナルデータベースはすべてのデータを2次元の表形式で表現"こういうのもリレーションが2次元構造という誤解の一種なんだろうか。id:nippondanjiさんが書いてたような。 さて、この疑問に対する正解は如何なるものだろうか? つい先日「7つのデータベース 7つの世界」の書評で書いたばかりだが・・・ 言うまでもなくその通りである。 リレーションが2次元的な構造を持っているというのは典型的な誤解だ。(ちなみにリレーションの次元は属性の数に等しい。n個の属性があるリレーションはn次元。)リレーショナルモデルについてちゃんと学習してい
例えば何行ものデータを挿入する場合を考えて見ます。値だけ異なるようなSQL文を何度も実行する場合、プリペアドステートメントを使うと便利です。 プリペアドステートメントを使う場合には"query"メソッドの代わりにDB_commonクラスで用意されている"prepare"メソッドを使います。 prepare resource prepare (string $query) execute() で実行できるように、SQL 文を 準備します。 パラメータ: string $query 準備するクエリ。 返り値: resource - クエリのハンドル、あるいは失敗した場合に DB_Error オブ ジェクトを返します。 使い方は"query"メソッドでプレースホルダーを使った場合と同じです。何度も繰り返し使われるSQL文の中で、毎回異なる値の部分を「?」で置き換えて指定します。 $sql = "
このエントリでは、ネット上で「SQLインジェクション対策」でGoogle検索した結果の上位15エントリを検証した結果を報告します。 SQLインジェクション脆弱性の対策は、既に「安全なSQLの呼び出し方」にファイナルアンサー(後述)を示していますが、まだこの文書を知らない人が多いだろうことと、やや上級者向けの文書であることから、まだ十分に実践されてはいないと思います。 この状況で、セキュリティのことをよく知らない人がSQLインジェクション対策しようとした場合の行動を予測してみると、かなりの割合の人がGoogle等で検索して対処方法を調べると思われます。そこで、以下のURLでSQLインジェクション対策方法を検索した結果の上位のエントリを検証してみようと思い立ちました。 http://www.google.co.jp/search?q=SQLインジェクション対策 どこまで調べるかですが、以前NH
string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier = NULL ] ) 現在の接続の文字セットで unescaped_string の特殊文字をエスケープし、 mysql_query() で安全に利用できる形式に変換します。バイナリデータを挿入しようとしている場合、 必ずこの関数を利用しなければなりません。 mysql_real_escape_string() は、MySQL のライブラリ関数 mysql_real_escape_string をコールしています。 これは以下の文字について先頭にバックスラッシュを付加します。 \x00, \n, \r, \, ', " そして \x1a. データの安全性を確保するため、MySQL へクエリを送信する場合には (わずか
2010年の年末に、「カイ士伝」のさくらVPSへの引っ越しを手伝ったわけですが、その後も元気にサーバは動き続けているようです。 引っ越し当初は、Web サーバとして lighttpd を導入してたんですけど、僕の個人的な好みがかわって、途中で Nginx に切り替えました。 特に大きなトラブルもなくサクサクと動いてたようですが、昨日突然の Yahoo!砲で、平常時の数倍のアクセスがあったようです。 Yahoo!砲くらったけど月額980円のさくらVPSとチューニングでサーバー落とさず乗り切ったよ – カイ士伝 ただ、アクセスが大量にあった初日(1記事に5.5万PV)にもサーバ負荷が高くなってるとか気付かずに、余波でちょっと多くなってた翌日(1記事に1.3万PV)に気づいたというくらいの平常運転っぷり。 Nginx 痺れますわー。 僕は、カイ士伝の WordPress ダッシュボードにログイン
みなさんはデータベースの管理・運用はどのようにしていますか?私はWebシステムを作るとき、PHP+MySQLの組み合わせで作っていて、DBの管理にはPHPMyAdminを使っていました。 システムを作るとき、データベースにデータがちゃんと入っているか調べたり、不要なデータを消したり、新しくテーブルを作ったりするとき、コマンドでもできますが、見辛くてしょうがありません。 ということで、GUIベースのソフトがほしくなりますよね。それで、MySQLの管理はこれまでブラウザでデータベースの管理が出来るPHPMyAdminを使ってきました。しかし、最近になってMacアプリで、もっと使いやすいソフトを知ったのです。 PHPMyAdminの不満点 まずはじめに、「ある程度時間が経つと、セッションが切れてしまう」こと。これはセキュリティ上仕方ないことだと思いますが、例えばあるテーブルの中身を表示しようと
グーグル、MySQL互換の「Google Cloud SQL」性能強化。最大でメモリ16GBへ拡張。Google Apps Scriptからも利用可能に グーグルはGoogle App Engineで提供しているMySQL互換のデータベースサービス「Google Cloud SQL」の性能強化を明らかにしました。Google Developpers Blogにポストされたエントリ「Get started at no cost with a faster, larger Cloud SQL database」で次のように説明しています。 ストレージ容量が従来の10GBから最大100GBへ インスタンスのメモリ容量が従来の4GBから最大16GBとなり、読み込み速度が向上 非同期レプリケーションを選択可能にしたことで、書き込み速度が向上 欧州データセンターで提供開始 Google AppsのGo
米国で行われているMySQL Connectというイベントで、ついにMySQL 5.6 RC(リリース候補版)が発表された。リリース候補版ということは、これが次の正式版になるということだ。MySQL 5.5は5.1から凄まじい進化を遂げたバージョンであった。だが、MySQL 5.6はさらにそれを上回る進化を遂げている!正直ここまでの進化を誰が予想しただろうか、いや誰も出来なかったであろう。これまで、α版が出たときから何度か新機能について紹介してきたが、今回改めてMySQL 5.6の新機能を振り返ってみようと思う。すべてまとめるともの凄い内容だ。興奮して夜も眠れなくなること請け合いだ。MySQLの進化が止まるのでは?などという心配は吹き飛び、もはやもうちょっと小出しにしなくて良かったのか?と心配してしまうレベルである。 それではMySQL 5.6の新機能について紹介していこう。 InnoDB
出典:日経コンピュータ 2012年5月10日号 pp.94-95 (記事は執筆時の情報に基づいており、現在では異なる場合があります) NewSQLと呼ばれる、新たなデータベース分野が確立しつつある。高速処理というNoSQLの強みを生かしながら、RDBの使い勝手を加えようというのが製品のコンセプト。キーとバリューから成るKVSに対して、なぜ、SQLによるアクセスや、トランザクション処理が可能なのか。その仕組みを明らかにする。 「NewSQL」を知っているだろうか。NECが2012年2月に発売開始したデータベース「InfoFrame Relational Store」がその一つ。大量データの高速処理に強い「KVS(キーバリュー型データストア)」に対して、SQLを使ってアクセスできる。従来のRDB(リレーショナルデータベース)、NoSQL(Not Only SQL)に続く“第3”のデータベースと
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く