タグ

*SQLに関するyamadarのブックマーク (28)

  • 脆弱性辞典/SQLインジェクション - セキュアプログラミングしよう。

    別称:SQL Injection、ダイレクトSQLコマンド・インジェクション(Direct SQL Command Injection) 概要 † 攻撃者によって悪意のあるSQLクエリーを実行、不正にデータ操作される脆弱性。リレーショナル・データベース上のデータを不正に書き換えられたり、読み出されたりします。データ破壊や情報漏えいの危険があります。 原因 † フォームやURLのクエリ文字列など、外部から入力されたデータを使ってSQL文を組み立てる処理に問題があります。次の例はPerlによるものですが、入力データをSQL文に埋め込む処理の基的な形としては、どの処理系でも同じようなものになるでしょう。 $value = CGI::param("profile"); $sql = "UPDATE USERS SET PROFILE = '$value' WHERE ID = 1"; この処理で

    yamadar
    yamadar 2010/07/16
    プレースホルダが使える場合は、文字列結合によってSQLにデータを埋め込む事を、プログラミングのポリシーとして禁止してください。
  • Memcacheはやっぱりすごかった

    森川です。恥ずかしながらmemcacheを使うくらいならtmpfsとかMySQLのHEAPテーブルを使えばいいじゃん、などと思っていたのですが、今回簡単なベンチマークをやってみて心を入れ替えました。 はい、memcacheは偉大です。すごく速いです。 テストとして10万件のデータをINSERTして、そこから該当するデータを10万件取得します。まずはmemcacheを使用した場合です。 今回はdagレポジトリのRPM版memcachedとソースからインストールしたPHP 5.2.3を使用してpecl installでmemcacheエクステンションをインストールしています。memcachedの設定はデフォルトのままです。 # yum install memcached # pecl install memcache # vi /usr/local/lib/php.ini extension=

    Memcacheはやっぱりすごかった
  • ブロックアルゴリズムとB-Treeアルゴリズム

    ファイルサーチを高速化するB-Treeアルゴリズム ext2、ext3がベースとするブロックアルゴリズムは、ブロック数が対応するディスクのジオメトリ数に制限されること、ファイルサーチにO(n)かかる(注)こと、ファイルサイズに関係するパフォーマンス低下など、いくつかの問題があった。 注:「O(n)」とは、実行時間が入力の大きさ「n」に比例するアルゴリズムである。O(n)は「nのオーダー」または「オーダーn」と読む。後述する「O(log n)」は、アルゴリズムの計算量に関する議論の場合logの底は常に2で、O(log n)の方がO(n)よりも効率が良い。例えばn=8の場合、O(log n)は入力8に対して3回の実行で済むが、O(n)は8回の実行となる。 ReiserFS、JFS、XFSといったファイルシステムでは、こうしたブロックアルゴリズムの限界に対して、早い段階からデータベースの技術をフ

    ブロックアルゴリズムとB-Treeアルゴリズム
  • インデックスの基礎知識

    ■ インデックスとは データベースの世界で、インデックス(索引)とはテーブルに格納されているデータを 高速に取り出す為の仕組みを意味します。 インデックスを適切に使用することによってSQL文の応答時間が劇的に改善 される可能性があります。 インデックスにはB-Treeインデックスをはじめ、ビットマップインデックス、 関数インデックスなどの種類がありますが、ここでは最も一般的に使われ、かつ ほとんどのDBMSでサポートされているB-Treeインデックスについて解説します。 ※ CREATE INDEX文でオプションを指定しない場合は通常B-Treeインデックスが 作成されます。 ■ B-Treeインデックスのしくみ B-Tree(Balanced Tree)インデックスは次のようなツリー状の構造になっています。 ツリーの先頭はヘッダブロックと呼ばれています。ヘッダブロックでは、キー値の 範囲

  • カーディナリティ - オラクル・Oracleをマスターするための基本と仕組み

    カーディナリティとは その属性に紐付けられるもののこと カーディナリティ度 (選択度) カーディナリティ度が低いとは、カラムの値の種類がレコード数に比べて少ないことをあらわす。 カーディナリティ度が高いとは、カラムの値の種類がレコード数に比べて多いことをあらわす。 種類の絶対数の多少でなく度合いである。 例えば、子供から大人までの場合、性別や血液型などはカーディナリティ度が低く、身長や体重はカーディナリティ度が高い。同じ長さでも、のサイズなどはカーディナリティ度が低いといえる。 カーディナリティ度の高いカラムへの B-Tree インデックスは検索操作に対して高い効果がある。(しかし、低い場合は逆効果になる) カーディナリティ度の低いカラムへの Bitmap インデックスは高い効果がある。ビットマップのジョインが発生する状況になると効果が高い(しかし、B-Tree インデックスに比べてイン

    yamadar
    yamadar 2010/05/17
  • MySQLの知っていると便利な構文(その1)|株式会社 フラッツ

    記事に誤った表現がございました。記事を参考にしていただいた方々、誤った表現で申し訳ございませんでした。お詫びして訂正いたします。また、誤りをご指摘くださった岩様、誠にありがとうございました。[MySQL]複合UNIQUEキーでも「INSERT … ON DUPLICATE KEY UPDATE」構文は使える 谷口です。 データベースの管理をしているとき、手動でデータの調整などをすることもあるかと思います。 今回はそんなときに便利なMySQLの構文をいくつかご紹介したいと思います。 もちろんアプリケーションに組み入れて使用しても問題ない構文もありますが、使用する局面は限られていると思います。 INSERT … SELECT 構文 CREATE TABLE … SELECT 構文 REPLACE 構文 INSERT … ON DUPLICATE KEY UPDATE INSERT

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • MySQLの自動変換を丁重にお断りするためのたった1種類の呪文 - sakaikの日々雑感~(T)編

    先日の『これだけは覚えておきたい!!MySQL の6つの自動変換』 http://d.hatena.ne.jp/sakaik/20100225/mysqlautochange にはたくさんの反響をいただいた。 時にこちらの意図と違っちゃうこともあるけれどもケナゲに気を使ってくれる MySQL が、これほどに皆さんにも愛されていることが判り、MySQLファンの一人として嬉しい限りである。 さて、そのエントリの最後に、 なお、「SQLモード」を指定するとこれらの動作を変更することができる。SQLモードについては気が向いたらいつか紹介してみたい。 と書いたところ、速攻でキムラデービーの木村明治氏が補足エントリーを書いてくださった。 ○キムラデービーブログ [勝手に補足]これだけは覚えておきたい!!MySQL の6つの自動変換 http://blog.kimuradb.com/?eid=83851

    MySQLの自動変換を丁重にお断りするためのたった1種類の呪文 - sakaikの日々雑感~(T)編