http://www.zusaar.com/event/5477013
![ページャ専用DBのご提案](https://cdn-ak-scissors.b.st-hatena.com/image/square/601fd35b7c88758a0e16a5285ee70d4422ef1faf/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fae5c3140e56b0131dfcf0af53335f589%2Fslide_0.jpg%3F3244002)
本書はDB設計やSQL記述の際に避けるべき事柄を1章で1つ、25個紹介する書籍です。リレーショナルデータベースを中心に据えたシステム開発には、様々な場面で陥りやすい失敗(アンチパターン)があります。本書はデータベース論理設計、データベース物理設計、クエリの記述、アプリケーション開発という4つのカテゴリに分け、それぞれの分野におけるアンチパターンを紹介し、失敗を避けるためのより良い方法を紹介します。複数の値を持つ属性や再帰的なツリー構造の格納から、小数値の丸めやNULLの扱いに起因する問題、全文検索やSQLインジェクション、MVCアーキテクチャなど、実践的かつ幅広いトピックを網羅します。日本語版では、MySQLのエキスパートとして著名な奥野幹也氏によるアンチパターンを収録。データベースに関わるすべてのエンジニア必携の一冊です。 本書への称賛の声 監訳者まえがき はじめに I部 データベース論
社内で、SQLインジェクションについてあらためて原理・原則から議論したいねという風潮がにわかに起こったので、ひとまずは叩き台として僕の方でまとめて皆で議論しましょうというわけで、以下のような資料を作成した。 社内勉強会用の資料なのだけど、僕は別にセキュリティに詳しいわけでもないし、ましてやPHPのことは素人なので、外部の識者にレビューしていただいて、できるだけ正しい知識に基づいて議論できればと思い、まずスライドを先行公開することにした。そうしたところ、Twitter上で多数の識者よりいろいろとご指摘いただいて、少くとも決定的におかしな内容にはなっていないものになったようだ。ありがとうございます。 僕らの職務のひとつに「セキュリティ関連」というものも謳われているので、そのあたりの知識普及・基盤整備についても、仕事のひとつとして行っている。先にも書いた通り、僕自身がその点についてよく理解できて
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
Hadoopをバッチ処理の高速化に活用しているノーチラス・テクノロジーズは、ビッグデータのブームに真っ向から異論を唱える。「ビッグデータは中身のないバズワード」と断言する代表取締役社長 神林飛志氏に、その真意を聞いた。 Hadoop=ビッグデータは大きな誤解 ノーチラス・テクノロジーズは、基幹系システム向けのミドルウェアを手がける国産ベンチャー。Webサービスのように決して派手ではないが、「そもそもダウンすると、飛行機が飛ばないとか、病院で人が死んでしまうとか、電車が動かないとか、生活に影響が出る分野」(神林氏)という、まさにミッションクリティカルな領域のITで、同社の製品は活用されている。 同社の「Asakusa Framework」は、Hadoopを活用した分散処理により、基幹系バッチの高速化を実現する。神林氏は、「Hadoopというと、WebやSNS系、BIやデータ解析での使い方がメ
BigQueryはカラム型データストアの一種で、テラバイトクラスの大規模データに対して大量の並列処理を行うことで高速に結果を得ることが可能。グーグル 佐藤一憲氏の発言によると、 OLAP/DWH/Data Miningで行われるようなread onlyのad hocクエリをきわめて高速(数秒〜数十秒)に実行します。 とのこと。 SQLによる問い合わせが可能 この高速性に加え、BigQueryではSQLを問い合わせ言語に使えるという点にも大きな特徴があります。数秒程度のレスポンスとSQL文による記述は、大規模データに対するアドホックな処理を行うのに適したサービスだといえるでしょう。 BigQueryのSQLの構文は「Query Reference」で解説されていますが、SELECT文にFROM、WHERE、JOIN、HAVING、GROUP BY、ORDER BY、LIMITなどが使えるため
4月11日から米サンタクララで行われた「MySQL Conference & Expo 2011」。このイベントでDeNAの松信嘉範(まつのぶよしのり)氏が、同社の大規模なMySQLの運用を支えている技術とツールについてのセッション「Automated, Non-Stop MySQL Operations and Failover」を行いました。 プレゼンテーションの中で、社内で利用しているフェイルオーバーの自動化ツールをオープンソース化することにも触れています(英語のドキュメントも作成中とのこと)。 MySQLの大規模運用における自動フェイルオーバーは、特にクラウドでのMySQLの利用が増えるにつれてニーズが高まる分野と思われます。セッションのスライドが公開されていますので、そのポイントを紹介していきます。 自動化されたノンストップなMySQLの運用 ソーシャルゲームでは高可用性が強く求
Amazon EC2を使う前に知っておきたいこと色々。 仕事でEC2を使っているのですが、やって見る前に思い描いていたことと、実際にやってみると相違があったりしました。やる前に知っておくといいことをまとめてみました。 EC2を使う予定の方は参考まで。 それでは早速。 インスタンスの 32bit か 64 bit に注意する EC2では負荷が高くなったらハイスペックなインスタンスに変えればいいというのがありますが、32bitのOSイメージを64bitのインスタンスに入れることは出来ません。 最初はsmallインスタンス(最近ではmicro)から始まると思いますが、32bit でいうとハイスペックなもので High CPU のインスタンスまでになっています。それ以降は64bitなので、そこで環境を作り替えないといけなくなります。 とはいえ64bit環境はLargeからで安いとはいえないので、こ
Oracle Exalogic登場、Facebookの世界中の処理要求をたった2台のフルラック構成で処理できる:Oracle OpenWorld 2010 Report 米サンフランシスコで開催中の「Oracle OpenWorld 2010」は、会長兼CEOであるラリー・エリソン氏の基調講演で始まった。エリソン氏はOracleの定義するクラウドコンピューティングについて解説し、それを実現するための新たな製品として、Oracle Exalogic Elastic Cloudを発表した。 2010年9月19日、米サンフランシスコのモスコーニ・コンベンションセンターにて米Oracleの年次カンファレンス「Oracle OpenWorld 2010」が開幕した。今回は、Sun Microsystemsとの統合後初のOracle OpenWorldであり、Sunがこれまで開催してきた開発者向けイベ
Google App EngineがSQLデータベースをサポートへ。エンタープライズ向けサービスを拡充 グーグルは5月19日(現地時間)に米サンフランシスコで開催されたイベント「Google I/O」の基調講演で、エンタープライズ向けにフォーカスした「Google App Engine for Business」を発表しました。その内容を紹介しましょう(基調講演の内容は、記事「[速報]Google I/Oで発表された4つのポイント:VP8オープンソース化/Chrome Web Store/VMwareとの協業/Google App Engine for Business」をご覧ください)。 基調講演で最後の発表者として壇上に立ったのは、グーグルのKevin Gibbs氏。App Engineがエンタープライズに受け入れられるようにするためには、いくつかのバリアを乗り越えなければならないと語
夏が近づくとウキウキしてくるmikioです。昨日ついにリリースされたKyoto Cabinet 1.0について今回は報告します。 1.0の位置づけ コミュニティ毎や製品毎にバージョン番号割り当ての方針は異なるわけですが、私の個人的なポリシーでは、1.0には特別な意味があります。すなわち、0.xのバージョンはbeta版的な位置づけで、「実サービスに使うのはちょっと待った方がいいですよ」ということを意味します。一方で、1.xはstable版的な位置づけで、「よろしければ実サービスでも使ってみてください」ということを意味します。私がstable版に設定する原則を以下に列挙します。 安定稼働を至上命題とする(バグがあればその修正を最優先する) APIを変更しない(変更するとしても後方互換性を維持する) DBファイルのフォーマットを変更しない(変更するとしても後方互換性を維持する) なるべく機能追加
PHP & MongoDB Sitting in a Tree: Part 1 | Inside DealTaker PHPでMongoDBを使うチュートリアルが公開されています。 MongoDBとはスキーマを指定せずにデータの格納が可能で高いパフォーマンスを発揮するドキュメント指向DBです。 MySQLから置き換えることでパフォーマンスの向上が見込める上に好きなarrayなんかを突っ込むことが出来て使い勝手もよさそうです。 MongoDBについてはMongoDBのパフォーマンスをBerkeley DB, H2, MySQLと比較 - kaisehのブログ を参考に。 この記事中のベンチマークではMySQLに比べて大きくパフォーマンスを上げられることが示されています。 で、今回のチュートリアルの記事なのですが、MySQLではこうやるけど、MongoDBではこうやる、といったコードの対応も書
10 sql tips to speed up your database プログラム内のデータベース処理高速化TIPSが10個紹介されているエントリのご紹介です。 SQLが適切に設計されていないとすぐにデータベース処理がCPUを圧迫してしまいますので可能な限り知っておきたいですね。 基本的な事から応用的な事まで参考になりそうだったのでメモ程度にご紹介。 explainでインデックスが使われているかを調べる 最も速いクエリは、クエリを発行しないこと、ということでデータをキャッシュしよう Memcached, CSQL Cache, AdoDB などでそれが可能 必要じゃないモノをselect しないようにする select * from table; ↓ select id from table; limit を使って取得する結果を少なくする foreach ループなどの中でsqlクエリを
GW 中の長距離移動のために体調が優れない takahi-i です. 今回は巨大なデータをマイニングする一つの技術として LSH (Localtiy Sensitive Hashing) を紹介させていただきます. LSH とは LSH は大量なデータから類似度が高いインスタンスのペアを高速に抽出してくれるアルゴリズムです. ここでインスタンスはデータ集合の一つの要素を表します. たとえば扱うデータが E-コマースサイトの購買ログであれば, インスタンスは各ユーザですし, 画像データ集合であれば, インスタンスは個々の画像データです. LSH の詳しい解説については以下のサイトがあります. Wikipedia のエントリ LSH に関する論文がまとめられているページ 本稿ではE-コマースサイトの購買履歴データを基に LSH の機能について述べてゆきます. 以下のような E-コマースサイトの
本連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基本構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。本連載は、著名なメールマガジン「おら!オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーのコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局) FOR...LOOP文を使って、いくつものSQL文でデータをINSERTしているPL/SQLプロシージャやプログラムをよく見掛けますが、実は1度にデータをINSERTする方法もあるんです。マルチテーブル・インサート(Multitable Insert)とはその名のとおり、1つのSQL文で複数の表にINSERTが可能になります。この最大のメリットは、やはりパフォーマンスです。では早速ご紹介します。 マルチテーブ
Let'sプログラミングでは初心者の方を対象にJavaやPython、PHP、Rubyなど色々なプログラミング言語の解説を行っています。 Java Java入門 これからJavaを使ったプログラミングの習得を目指している方を対象としたチュートリアルです サーブレット(Servlet) / JSP入門 サーバサイドで動作するアプリケーションの作成方法 Androidプログラミング入門 モバイル向けプラットフォーム Android で動くアプリの作成 Swingを使ってみよう GUIを使ったJavaアプリケーションの作成で使用するSwing入門です Eclipse入門 開発環境として広く使われているEclipseのインストールと活用法 Javadocの記述 ソースコードからHTML形式の仕様書を生成します Apache POIでExcelを操作 Excelファイルの作成・操作
サーバーの能力の問題もあり、「徳丸浩の日記」を以下のURLに移転致します。旧のコンテンツはそのままとし、新しいエントリから新ブログの方に書いていきます。 徳丸浩の日記 (blog.tokumaru.org) 新ブログの最初のエントリとして、「ソフトバンクのゲートウェイ型SSLの脆弱性を振り返る」を書きましたので、ぜひお読みください。 _PDO/MySQL(Windows版)の文字エンコーディング指定の不具合原因 前回のブログ「PHP5.3.6からPDOの文字エンコーディング指定が可能となったがWindows版では不具合(脆弱性)あり」にて、PHP5.3.6(本エントリ執筆時点での最新版)からPDOにてサポートされた文字エンコーディング指定がWindows版では正しく動作しないことを報告しました。Linuxでは正常に動作するので不思議だなという話になっていたのですが、千葉征弘さん(@nihe
HEAP(Memory)テーブルの合計 3,000 件程度の小規模なデータを検索する場合でも複合検索を行うより分割した方が高速になるらしい。 SELECT date( timestamp ) as date, min( time ), avg( time ) FROM `fastcap_200810heap` WHERE `player` = 'xsd|z1' AND `map` = 'q3wcp6' AND `gametype` =1 AND `promode` =0 GROUP BY `date` ORDER BY `date` ASC;where で使う全てのフィールドにはインデックスを付けているけど、この場合だと filesort が使われてしまい 0.0050 〜 0.0100 秒程かかる。 CREATE TEMPORARY TABLE `tmp1` SELECT * FROM
OS:WindowsXP MySQL:4.0.16 が稼動している環境に4.1.10 をインストールし、同時に稼動する。 参考)http://dev.mysql.com/doc/mysql/ja/multiple-windows-services.html 1. フォルダ構成、ポートを調査 4.0.16 は c:\mysql, 3306 なので、 4.1.10 は c:\mysql41, 3307 にインストールする。 2. ダウンロード mysql-4.1.10-win32.zip をmysqlのサイトからダウンロードして解凍。 もしダウンロードに失敗する場合はSoftAgencyのサイトからダウンロードすると速いし確実。 3. インストール setup.exe を実行しインストーラの指示に従ってインストール。 途中で Setup Type 選択になったら Custom を
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く