タグ

関連タグで絞り込む (202)

タグの絞り込みを解除

SQLに関するraimon49のブックマーク (178)

  • 今日こそわかる、安全なWebアプリの作り方2010

    Internet Week 2010 S3 今日こそわかる、安全なWebアプリの作り方2010 http://www.nic.ad.jp/iw2010/program/s3/

    今日こそわかる、安全なWebアプリの作り方2010
    raimon49
    raimon49 2011/10/21
    2011年現在Webアプリケーションのセキュリティ要件ひと巡り。入力値検証では保険的に制御文字を弾け, SQLの呼び出しにはとにかくプレースホルダ使え, モバイルではかんたんログインやめろ 等。
  • ホント信じられないDB文化だけど、統計情報固定化はマジでアリ - レベルエンター山本大のブログ

    信じられないDB文化「固定長DB」でもあうんです。大規模コンシューマ向けサービスのRDB設計 - 山大の日記に引き続き、大規模コンシューマ向けサービスのRDBの意外な使い方について。 僕らのサービスでは、統計情報を手作業でセットして固定化していた。 こんなことは普通やらないけれど、しかしながら非常にシステムのパフォーマンスを安定させるのに効果があった。 Oracleの統計情報(オプティマイザ統計情報)とは まず統計情報とは何かというところから始める。 統計情報とは、正式名称「オプティマイザ統計情報」といい、OracleSQLを解析して最適な実行計画を作成するために利用する情報である。 実行計画を作成する機能のことをCBO(コスト・ベース・オプティマイザ)という、このオプティマイザ向けの統計的な情報だから、オプティマイザ統計情報と呼ばれる。 統計情報の実体は何かというと、データベースの各

    ホント信じられないDB文化だけど、統計情報固定化はマジでアリ - レベルエンター山本大のブログ
    raimon49
    raimon49 2011/09/11
    このシリーズ本当に面白い。
  • Covering Index と self-join と MySQL - blog.nomadscafe.jp

    某サービスのクエリチューニングのお話。 ブログとか日記とかそういうサービス系で次のようなテーブルがあったとします。 CREATE TABLE entries ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, user_id INT UNSIGNED NOT NULL, posted_by TINYINT UNSIGNED NOT NULL, --#PC、mobileなどどこから投稿されたかのフラグ title VARCHAR(512) NOT NULL, body TEXT NOT NULL, created_at DATETIME NOT NULL, updated_at TIMESTAMP NOT NULL, status TINYINT UNSIGNED NOT NULL, INDEX (user_id,created_at

  • 複合主キーを避けるべき理由 - 虎塚

    データベース設計の話をしていて、「連番の主キーは業務上意味のないデータだから、テーブルに持たせるのはムダだ。複合主キーにするべき」という意見を聞く機会がありました。 脊髄反射で「ないわー」と思ったものの、理由を上手く説明できなかったので、改めて考えてみました。 その結果、次のような結論に至りました。 単一の連番カラムによる主キーと、複合カラムによる主キーとで迷ったら 実装をシンプルにし、業務変更の影響範囲を小さくするために、複合主キーを避ける というわけで、調べたことや考えたことをメモしておきます。# 間違っている部分があれば、教えていただけると嬉しいです。 (2011/07/25 追記)複合主キーとサロゲートキーについては、要件やシステムに依存して多様な判断がありうると思います。にもかかわらず、「避けるべき」というタイトルにしたのは極端でした。申し訳ありません。ご指摘下さった皆さん、あり

    複合主キーを避けるべき理由 - 虎塚
    raimon49
    raimon49 2011/07/14
    業務要件によりけりだとは思うけど「あまりにも多くの方が、PK制約以外にユニーク制約を付けるということを(DB設計を本業としてる人でさえ)忘れている、あるいはそのような機能が大半のRDBMSにあるのを知らないという
  • 徳丸本のあれこれを実践してみて気付いたこと | 水無月ばけらのえび日記

    更新: 2011年7月9日23時0分頃 とあるシステムで徳丸のストレッチングを採用することにしたという話がありましたが、その実装が佳境に入ってきました。私は指示だけ出して、実装はお任せ……と思っていたのですが、基的な部分を作ってもらったところでバトンタッチされ、私が引き継ぐ形で実際にコードを書くことになりました。 基的には徳丸 (www.amazon.co.jp)のオススメどおりの実装にするという方針なのですが、実際にコードを書いてみると、いろいろと気になったり迷ったりした事も出てきました。そのあたりを簡単にメモしておきます。 ※ちなみに、このシステムはRuby1.9.2 + Ruby on Rails3での実装なので、PHPのコードサンプルをそのまま使っているわけではありません。 ストレッチ回数をどう決めるのか徳丸327ページにあるコード例を参考にして実装。アプリケーションごと

    raimon49
    raimon49 2011/06/27
    計算量と計算回数の調整。ログイン失敗の応答時間も考慮する。
  • PHPでセキュリティを真面目に考える

    オープンソースカンファレンス2011 Hokkaido #osc11do 「PHPセキュリティを真面目に考える」 LOCAL PHP部 佐藤琢哉(@nazo) http://labs.nazone.info/Read less

    PHPでセキュリティを真面目に考える
    raimon49
    raimon49 2011/06/13
    分かり易い資料。確かにE_DEPRECATEDもっと増えると良いね。
  • Cassandraが0.8にバージョンアップ。SQLに似たCQLを搭載し、分散カウンターも実装

    RackspaceのEric Evans氏がCassandraのメーリングリストに投稿した内容によると、Cassandra 0.8の最大の特徴は、SQLに似た問い合わせ言語のCQL(Cassandra Query Language)をはじめて搭載したこと。 また、これまで要望の多かった分散カウンターを実装し、ノード間の暗号化通信を実装したことでパブリッククラウドなどの環境でのセキュリティが高まったとしています。 CQL 1.0では、USE、SELECT、UPDATE、DELETE、TRUNCATE、DROP、BATCHなどのキーワードを備えており、SQL文のようにデータベースの内容を操作できるとのこと。PythonJava、Node.js用のドライバーが提供されています。 CQLについては、第16回Cassandra勉強会での@yukim氏の資料「CQL」が公開されています。分かりやすく

    Cassandraが0.8にバージョンアップ。SQLに似たCQLを搭載し、分散カウンターも実装
  • ソニー・ピクチャーズにも不正アクセス、顧客情報がウェブに公開

    iPad Air M2 hands-on: A big-screen iPad that doesn't break the bank

    ソニー・ピクチャーズにも不正アクセス、顧客情報がウェブに公開
    raimon49
    raimon49 2011/06/03
    >不正アクセスに使われた手法はシンプルな SQLインジェクション。LulzSec は名前が示すように愉快犯的なグループで、みずから「大物ハッカーのふりをするつもりはない」としつつ、実際の手法がもっとも初歩的でありふれ
  • SQLはリングワ・フランカ - wyukawa's diary

    ちなみにリングワ・フランカはこういう意味です。 共通の母語を持たない人同士の意思疎通に使われる言語のことを指す。 リングワ・フランカ - Wikipedia で象の第二版のHiveの章のところでSQLはリングワ・フランカであるという記述が出てきます。ちなみに日語訳された第一版にはHiveの記述はありません。 Hadoop: The Definitive Guide 作者: Tom White,Doug Cutting出版社/メーカー: Oreilly & Associates Inc発売日: 2010/10/14メディア: ペーパーバック購入: 2人 クリック: 149回この商品を含むブログ (14件) を見る Of course, SQL isn't ideal for every big data problem-it's not a good fit for building c

    SQLはリングワ・フランカ - wyukawa's diary
    raimon49
    raimon49 2011/05/29
    SQLは賞味期限の長い共通言語というのはよく分かる。正規表現なんかもそう。
  • アナログなSQLインジェクション手法がすごい件 - YomuKaku Memo

    車のナンバープレートの上あたりにsql injection用の文字列を貼ってスピード違反検出用(?)のカメラに読み込ませ、電光掲示板に任意(と思われる)文字を出力する攻撃をしている人がいたようです。 画像を見ていただくことが早いです。 Tumblrで流れていた画像なので、ソースがわからないため、ひとまずそのまま転載します。 実際の出来事なのかフィクションなのかわかりませんが…。 日のNシステムとか、やはりこういう穴はキチッと塞いであるんでしょうか。

    raimon49
    raimon49 2011/02/11
    ちょww
  • ランキングのつくりかた:Kenn's Clairvoyance

    遅ればせながら、あけましておめでとうございます。 先週には、ベイエリアの友人たちがやっているEchofonがPostUpに買収されるなど、幸先のよい新年のスタートとなりました。 さて、最近ホットなマーケットといえばソーシャルゲームですが、ゲームといえばリーダーボード。ハイスコアのランキング友人や見知らぬ人たちと競うのは、ビデオゲームが誕生した1970年代から欠かせない要素でした。 ところが、インターネット経由で100万人規模のプレイヤーがつながるようになってきた現在、その全体をランキングづけするのは、技術的にも大きなチャレンジとなってきました。 今回は、そのリーダーボードのつくりかたについて、ぼくらの作っているソーシャルゲーム・プラットフォームであるPankiaの運用で得られた知見を共有したいと思います。 自分の順位を知る方法 リーダーボードの基的な考え方はシンプルで、それはつまり「ユ

    ランキングのつくりかた:Kenn's Clairvoyance
    raimon49
    raimon49 2011/01/14
    集計テーブル Shardingを検討する前にカーディナリティを意識して既存のソリューションで、ということ。
  • NoSQLはLinuxディストリビューションの歴史のようになる、2011年のNoSQLに関する予想

    2010年はNoSQLの存在が広く知られるようになった1年でした。では2011年、NoSQLはどうなるのでしょうか? 3の予想記事を紹介しましょう。 米調査会社the451groupのブログToo much informationにポストされたエントリ「NoSQL – consolidating and proliferating in 2011」では、表題通り2011年もNoSQLは広がりを見せると同時に、コンソリデーション、つまり整理統合が起きると予想しています。 広がりの方は、2011年も新しいNoSQLプロジェクトが立ち上がることで、さらに種類が増えるだろうとしつつ、コンソリデーションについて次のように書いています。 I think we are also beginning to see the a narrowing of the commercial focus on t

    NoSQLはLinuxディストリビューションの歴史のようになる、2011年のNoSQLに関する予想
  • MySQLでインデックスを使って高速化するならCovering Indexが使えそう - (゚∀゚)o彡 sasata299's blog

    2009年10月28日09:33 MySQL MySQLでインデックスを使って高速化するならCovering Indexが使えそう Linux-DB システム構築/運用入門 (DB Magazine SELECTION) 著者:松信 嘉範 販売元:翔泳社 発売日:2009-09-17 おすすめ度: クチコミを見る 最近、このを読んでいます。非常に面白いし、参考になります〜。中でもインデックスについての記事が特に興味深かったので簡単にまとめてみます。 前提 ・インデックスは検索性能には効果があるが、更新性能は落ちてしまう ・MyISAM と InnoDB ではインデックスの構造が違う ・インデックスは B+Tree インデックスと呼ばれ、ルート、ブランチ、リーフの階層構造になっている ・インデックスはソートされた状態で作成されている まずは MyISAM と InnoDB でのインデックス

    raimon49
    raimon49 2010/12/28
    マルチカラムインデックスのキャッシュを使ってディスクアクセスさせない。Covering Index
  • おさかなラボ - PHPデベロッパがおかしがちな10のMySQL間違いがおかした間違い

    【レポート】PHPデベロッパがおかしがちな10のMySQL間違い | エンタープライズ | マイコミジャーナル という記事があったのですが、おや?と思う所があったのでツッコミを入れる。 ブラウザ側で動作するJavaScriptを使ったチェックに頼るのではなく、 サーバサイドのPHPでちゃんと検証すること。 PHPでの検証はあてにならない。Perlも然り。PHPには「サニタイズする」関数が沢山あるが、そういうものは安易に使わないようにしたほうがよい。「サニタイズ」ではなく「ヴァリデート」して、意図しない値はエラー、「来るはずがない」値はwarn()(だっけ?)でerror_logにログを吐いて死ぬように。ハカー以外ありえない人に普通の画面遷移見せるのはお人好しもいいところである。当然であるが、エラーログを画面に吐いて死ぬのは論外。 以上をちゃんとした上で、「必ず」プレースホルダを使う。鉄則。

    raimon49
    raimon49 2010/12/05
    >実は「*」はCOUNT()の中で展開されない。その代わりに全てのレコード数を最も早い方法でカウントする。*の代わりにPKを入れると「より早く」なるというのは都市伝説である(少なくともMySQL5.*以降)。 なお、もしもここにNU
  • 生島さんが考える最強の言語 SQL - ぐるぐる~

    生島さんが誰と闘っているのか知らないけど、ちょっと気になることをつらつらと。 SQLは最も高級言語 - SQLer 生島勘富 の日記 SQLは最も高級言語2 - SQLer 生島勘富 の日記 SQLとはなんぞや? - SQLer 生島勘富 の日記 高級*言語* どうも生島さんは、「SQL は高級言語!」と言いつつ SQL の処理系 (RDBMS) のことを高級だと言っているようです。 言語が高級であることと、処理系の最適化が手厚いことをごちゃまぜにして、この言語高級!と言うのはまずいんじゃないでしょうか。別に、RDBMS を操作するための言語として SQL でなくたっていいのです。例えば Tutorial D/Industorial D もあるし、LINQ を SQL に変換せずに直接 DB の操作を行うような RDBMS/Linq to X と言うのも考えられます。 ここではとりあえず、

    生島さんが考える最強の言語 SQL - ぐるぐる~
  • SQLは最も高級言語 - SQLer 生島勘富 のブログ

    SQLは現在、普及している言語の中で最も高級な言語です。 高級か低級かというのは、どれだけCPU(の命令)と近いかです。CPUに近ければ近いほど低級でCPUから遠い、つまり、人間に近いほど高級言語ということになり、一般的に低級ほど扱うのは難しくなります。 例えば、JavaではJava VMがCPUの違いだけでなく、OSの違いまでを吸収してくれます。しかし、より低級なC言語と全く同じ処理を書いたのと比べれば、Javaでコンパイルされたコードは冗長になるため実行速度が遅くなりますが、高級な言語ほどシンプルなソースで書けるから生産性は高くなります。 生産性とパフォーマンスについて 理論値としては、同じ処理を低級言語と高級言語で書けば、生産性は高級言語ほど高くなります。 では、アセンブリ言語ができる人が同じ処理をJavaで書いたとして生産性が上がるかというと、Javaもできるなら生産性は上がります

    SQLは最も高級言語 - SQLer 生島勘富 のブログ
    raimon49
    raimon49 2010/11/23
    土俵の違い。ごちゃごちゃにしている人は確かに居る。
  • W3C、「Web SQL Database」の仕様策定を正式に断念

    ウェブベースのアプリケーションで、ブラウザを起動しているコンピュータ上にデータを保存できるようにしようという試みが、少なくとも技術の標準化という面では終わりを迎えた。 この技術は「Web SQL Database」と呼ばれるもので、ブラウザに「SQLite」データベースを組み込むことにより、プログラマーは一般的なSQL技術を使用してデータを読み書きできる。Web SQL Databaseはさまざまな点で便利な技術だが、おそらく最も注目すべきは、情報をキャッシュすることによってコンピュータがネットワークに接続されていなくても情報を取得できる点だろう。現在、多くのウェブアプリケーションにとってこれは大きな課題となっている。 だがWorld Wide Web Consortium(W3C)は米国時間11月18日、Web SQL Databaseの仕様を正式に廃止した。これにより開発者は今後Web

    W3C、「Web SQL Database」の仕様策定を正式に断念
    raimon49
    raimon49 2010/11/22
    標準化の壁は厚い
  • Hiveクエリチューニングメモ - 科学と非科学の迷宮

    Hadoop2版を買ったその一週間後にDeals of the day で半額セールやられて死にたくなったので腹いせに書く はじめに ここに書いてあるのは全部参考リンク・文献からひっぱってきただけで、ほとんど全部検証してない。間違いがあればなるべく早めに更新するよう努力はするが、鵜呑みにして何が起きても自己責任で。 Hive のクエリチューニングに関するメモ書きである。以下のことは「書いていない」 Hadoop自体のチューニング Hive のクエリチューニング以外の話 例えば、圧縮ファイルを Hive 上で扱うにはどうするかとか JOIN 一番左のテーブルに最も大きなテーブルを持ってくる 一番左のテーブルがMRでいう入力データとして流れる。インナーテーブルのデータはメモリに保持される。 同一 JOIN キー 通常は 1 JOIN = 1 MR ジョブだが、同一の JOIN キーを使ってい

    Hiveクエリチューニングメモ - 科学と非科学の迷宮
    raimon49
    raimon49 2010/11/20
    JOIN句 最も大きなテーブルを1番左に
  • ソーシャルゲームのためのMySQL入門 | BLOG - DeNA Engineering

    こんにちはこんにちは。最近お腹痛いばっかり言ってることで有名なiwanagaです。 DeNAは外部的にはプラットフォーム的な部分の方がフィーチャーされることが多いですが、実はソーシャルゲームの提供も行っています。怪盗ロワイヤルとか、どこかで聞いたことがあるのではないでしょうか。 僕はDeNAでソーシャルゲームが誕生した辺りからずっとサーバサイドを見てきましたが、そんな運用の中で自分が貯めてきた知見とかTIPSをご紹介したいと思います。 かれこれ10タイトル近くはレビューしたり運用したりしてるため結構言いたいことはいっぱいあるので、小出しにしつつ評判よければ次も書きます。 ソーシャルゲームのためのMySQL入門一覧 ソーシャルゲームのためのMySQL入門 - Technology of DeNA ソーシャルゲームのためのMySQL入門2 - Technology of DeNA 「MySQL

    ソーシャルゲームのためのMySQL入門 | BLOG - DeNA Engineering
    raimon49
    raimon49 2010/11/16
    InnoDBで大規模データをストアする際のコツ、パーティショニングの利点紹介など。ログ系のテーブル設計の勘所や採番テーブルによるid払い出しは、ソーシャルゲームに限らず普遍的に役立つDB設計の基礎知識。軽妙な語り
  • SQLライクな構文でTwitterにアクセスするtweeql | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 みんなのブロックチェーンは,ブロックチェーンの入門書。暗号やハッシュなどを含め,基礎からブロックチェーンの仕組みを学べる書籍です。 いろんな方に「新しい技術を学ぶことの楽しさ」を感じ取ってくれたら著者として嬉しいです:-)。お金技術的にどのように定義されるのか。 みんなのIoTは,モノのインターネットと呼ばれるIoTの入門書です。IoTの基について,読者に寄り添って優しく解説しました。裏テーマは一番とっつきやすいPython入門書。サポートページはこちら みんなのPython 第四版は,より分かりやすい入門書を目指し,機械学習やデータサイエンスの章も追加して第三版を大幅に書き換えました。Python 3.6にも華