タグ

Work - DBに関するsoulja_boyのブックマーク (26)

  • ページャ専用DBのご提案

    http://www.zusaar.com/event/5477013

    ページャ専用DBのご提案
  • SQLアンチパターン

    書はDB設計やSQL記述の際に避けるべき事柄を1章で1つ、25個紹介する書籍です。リレーショナルデータベースを中心に据えたシステム開発には、様々な場面で陥りやすい失敗(アンチパターン)があります。書はデータベース論理設計、データベース物理設計、クエリの記述、アプリケーション開発という4つのカテゴリに分け、それぞれの分野におけるアンチパターンを紹介し、失敗を避けるためのより良い方法を紹介します。複数の値を持つ属性や再帰的なツリー構造の格納から、小数値の丸めやNULLの扱いに起因する問題、全文検索やSQLインジェクション、MVCアーキテクチャなど、実践的かつ幅広いトピックを網羅します。日語版では、MySQLのエキスパートとして著名な奥野幹也氏によるアンチパターンを収録。データベースに関わるすべてのエンジニア必携の一冊です。 書への称賛の声 監訳者まえがき はじめに I部 データベース論

    SQLアンチパターン
  • SQLインジェクションについてのスライドを作成した - Kentaro Kuribayashi's blog

    社内で、SQLインジェクションについてあらためて原理・原則から議論したいねという風潮がにわかに起こったので、ひとまずは叩き台として僕の方でまとめて皆で議論しましょうというわけで、以下のような資料を作成した。 社内勉強会用の資料なのだけど、僕は別にセキュリティに詳しいわけでもないし、ましてやPHPのことは素人なので、外部の識者にレビューしていただいて、できるだけ正しい知識に基づいて議論できればと思い、まずスライドを先行公開することにした。そうしたところ、Twitter上で多数の識者よりいろいろとご指摘いただいて、少くとも決定的におかしな内容にはなっていないものになったようだ。ありがとうございます。 僕らの職務のひとつに「セキュリティ関連」というものも謳われているので、そのあたりの知識普及・基盤整備についても、仕事のひとつとして行っている。先にも書いた通り、僕自身がその点についてよく理解できて

    SQLインジェクションについてのスライドを作成した - Kentaro Kuribayashi's blog
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
  • “統計の基礎を無視している”Hadoop使いが考えるビッグデータ

    Hadoopをバッチ処理の高速化に活用しているノーチラス・テクノロジーズは、ビッグデータのブームに真っ向から異論を唱える。「ビッグデータは中身のないバズワード」と断言する代表取締役社長 神林飛志氏に、その真意を聞いた。 Hadoop=ビッグデータは大きな誤解 ノーチラス・テクノロジーズは、基幹系システム向けのミドルウェアを手がける国産ベンチャー。Webサービスのように決して派手ではないが、「そもそもダウンすると、飛行機が飛ばないとか、病院で人が死んでしまうとか、電車が動かないとか、生活に影響が出る分野」(神林氏)という、まさにミッションクリティカルな領域のITで、同社の製品は活用されている。 同社の「Asakusa Framework」は、Hadoopを活用した分散処理により、基幹系バッチの高速化を実現する。神林氏は、「Hadoopというと、WebやSNS系、BIやデータ解析での使い方がメ

    “統計の基礎を無視している”Hadoop使いが考えるビッグデータ
  • グーグル、BigQueryを正式公開。SQLで大規模データに対して高速処理

    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などが使えるため

    グーグル、BigQueryを正式公開。SQLで大規模データに対して高速処理
  • DeNAによる大規模なMySQLノンストップ運用の裏側にある、フェイルオーバー自動化ツール

    4月11日から米サンタクララで行われた「MySQL Conference & Expo 2011」。このイベントでDeNAの松信嘉範(まつのぶよしのり)氏が、同社の大規模なMySQLの運用を支えている技術とツールについてのセッション「Automated, Non-Stop MySQL Operations and Failover」を行いました。 プレゼンテーションの中で、社内で利用しているフェイルオーバーの自動化ツールをオープンソース化することにも触れています(英語のドキュメントも作成中とのこと)。 MySQLの大規模運用における自動フェイルオーバーは、特にクラウドでのMySQLの利用が増えるにつれてニーズが高まる分野と思われます。セッションのスライドが公開されていますので、そのポイントを紹介していきます。 自動化されたノンストップなMySQLの運用 ソーシャルゲームでは高可用性が強く求

    DeNAによる大規模なMySQLノンストップ運用の裏側にある、フェイルオーバー自動化ツール
  • Amazon EC2を使う前に知っておきたいこと色々:phpspot開発日誌

    Amazon EC2を使う前に知っておきたいこと色々。 仕事でEC2を使っているのですが、やって見る前に思い描いていたことと、実際にやってみると相違があったりしました。やる前に知っておくといいことをまとめてみました。 EC2を使う予定の方は参考まで。 それでは早速。 インスタンスの 32bit か 64 bit に注意する EC2では負荷が高くなったらハイスペックなインスタンスに変えればいいというのがありますが、32bitのOSイメージを64bitのインスタンスに入れることは出来ません。 最初はsmallインスタンス(最近ではmicro)から始まると思いますが、32bit でいうとハイスペックなもので High CPU のインスタンスまでになっています。それ以降は64bitなので、そこで環境を作り替えないといけなくなります。 とはいえ64bit環境はLargeからで安いとはいえないので、こ

  • ソーシャルゲームのためのデータベース設計

    ・データベース的な観点でのソーシャルゲームの特徴 ・データモデル ・ソーシャルゲームに従来型RDBMSを使うべきか、�流行りのNoSQLで行くべきか ・負荷対策 (アーキテクチャ面) ・負荷対策 (ツール面) ・インフラエンジニアのキャリアについて

    ソーシャルゲームのためのデータベース設計
  • Oracle Exalogic登場、Facebookの世界中の処理要求をたった2台のフルラック構成で処理できる

    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がこれまで開催してきた開発者向けイベ

    Oracle Exalogic登場、Facebookの世界中の処理要求をたった2台のフルラック構成で処理できる
  • Google App EngineがSQLデータベースをサポートへ。エンタープライズ向けサービスを拡充

    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がエンタープライズに受け入れられるようにするためには、いくつかのバリアを乗り越えなければならないと語

    Google App EngineがSQLデータベースをサポートへ。エンタープライズ向けサービスを拡充
    soulja_boy
    soulja_boy 2010/06/13
    1人1月8ドル。そして1つのアプリケーションの上限は1000ドルまで。これ以外にかかる料金はない。
  • Kyoto Cabinet 1.0.0リリース! - mixi engineer blog

    夏が近づくとウキウキしてくるmikioです。昨日ついにリリースされたKyoto Cabinet 1.0について今回は報告します。 1.0の位置づけ コミュニティ毎や製品毎にバージョン番号割り当ての方針は異なるわけですが、私の個人的なポリシーでは、1.0には特別な意味があります。すなわち、0.xのバージョンはbeta版的な位置づけで、「実サービスに使うのはちょっと待った方がいいですよ」ということを意味します。一方で、1.xはstable版的な位置づけで、「よろしければ実サービスでも使ってみてください」ということを意味します。私がstable版に設定する原則を以下に列挙します。 安定稼働を至上命題とする(バグがあればその修正を最優先する) APIを変更しない(変更するとしても後方互換性を維持する) DBファイルのフォーマットを変更しない(変更するとしても後方互換性を維持する) なるべく機能追加

    Kyoto Cabinet 1.0.0リリース! - mixi engineer blog
  • PHPでMongoDBを使ってNoSQLするチュートリアル:phpspot開発日誌

    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ではこうやる、といったコードの対応も書

  • プログラム内のデータベース処理高速化TIPS:phpspot開発日誌

    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クエリを

  • LSH (Locality Sensitive Hashing) を用いた類似インスタンスペアの抽出 - mixi engineer blog

    GW 中の長距離移動のために体調が優れない takahi-i です. 今回は巨大なデータをマイニングする一つの技術として LSH (Localtiy Sensitive Hashing) を紹介させていただきます. LSH とは LSH は大量なデータから類似度が高いインスタンスのペアを高速に抽出してくれるアルゴリズムです. ここでインスタンスはデータ集合の一つの要素を表します. たとえば扱うデータが E-コマースサイトの購買ログであれば, インスタンスは各ユーザですし, 画像データ集合であれば, インスタンスは個々の画像データです. LSH の詳しい解説については以下のサイトがあります. Wikipedia のエントリ LSH に関する論文がまとめられているページ 稿ではE-コマースサイトの購買履歴データを基に LSH の機能について述べてゆきます. 以下のような E-コマースサイトの

    LSH (Locality Sensitive Hashing) を用いた類似インスタンスペアの抽出 - mixi engineer blog
  • 1つのSQL文で複数の表にINSERTする絶品テクニック(1/2) ― @IT

    連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。連載は、著名なメールマガジン「おら!オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局) FOR...LOOP文を使って、いくつものSQL文でデータをINSERTしているPL/SQLプロシージャやプログラムをよく見掛けますが、実は1度にデータをINSERTする方法もあるんです。マルチテーブル・インサート(Multitable Insert)とはその名のとおり、1つのSQL文で複数の表にINSERTが可能になります。この最大のメリットは、やはりパフォーマンスです。では早速ご紹介します。 マルチテーブ

    1つのSQL文で複数の表にINSERTする絶品テクニック(1/2) ― @IT
    soulja_boy
    soulja_boy 2010/05/01
    マルチテーブル・インサートの方法。10倍ほど速度上がることもあるらしい。OracleだとINSERT ALL。MySQLだとMulti-row insert。
  • Let'sプログラミング

    Let'sプログラミングでは初心者の方を対象にJavaPythonPHPRubyなど色々なプログラミング言語の解説を行っています。 Java Java入門 これからJavaを使ったプログラミングの習得を目指している方を対象としたチュートリアルです サーブレット(Servlet) / JSP入門 サーバサイドで動作するアプリケーションの作成方法 Androidプログラミング入門 モバイル向けプラットフォーム Android で動くアプリの作成 Swingを使ってみよう GUIを使ったJavaアプリケーションの作成で使用するSwing入門です Eclipse入門 開発環境として広く使われているEclipseのインストールと活用法 Javadocの記述 ソースコードからHTML形式の仕様書を生成します Apache POIでExcelを操作 Excelファイルの作成・操作

    Let'sプログラミング
    soulja_boy
    soulja_boy 2010/02/01
    MySQL, PostgreSQL, Oracle, SQL Serverについてインストールからデータ型、基本SQLコマンドまで網羅
  • 徳丸浩の日記

    サーバーの能力の問題もあり、「徳丸浩の日記」を以下のURLに移転致します。旧のコンテンツはそのままとし、新しいエントリから新ブログの方に書いていきます。 徳丸浩の日記 (blog.tokumaru.org) 新ブログの最初のエントリとして、「ソフトバンクのゲートウェイ型SSLの脆弱性を振り返る」を書きましたので、ぜひお読みください。 _PDO/MySQL(Windows版)の文字エンコーディング指定の不具合原因 前回のブログ「PHP5.3.6からPDOの文字エンコーディング指定が可能となったがWindows版では不具合(脆弱性)あり」にて、PHP5.3.6(エントリ執筆時点での最新版)からPDOにてサポートされた文字エンコーディング指定がWindows版では正しく動作しないことを報告しました。Linuxでは正常に動作するので不思議だなという話になっていたのですが、千葉征弘さん(@nihe

  • 三日坊主のぶろぐ: [MySQLメモ] テンポラリテーブルで高速化

    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

  • Windowsに複数のMySQLをインストールする手順 | AMsoft space

    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.zipmysqlのサイトからダウンロードして解凍。 もしダウンロードに失敗する場合はSoftAgencyのサイトからダウンロードすると速いし確実。 3. インストール setup.exe を実行しインストーラの指示に従ってインストール。 途中で Setup Type 選択になったら Custom を