タグ

databaseに関するt-wadaのブックマーク (174)

  • 並列データベースシステムの概念と原理

    2014/01/30 筑波大学情報システム特別講義Dの講義資料です。 join関係はNAIST時代の宮崎先生のデータ工学Ⅱの内容を参考にしてます。 animation有効なビデオはこちら https://vimeo.com/85598907

    並列データベースシステムの概念と原理
    t-wada
    t-wada 2014/02/02
    並列データベースのアーキテクチャ、構成法(並列ハッシュ結合等)、発生する問題、MapReduce と関係演算などが短くまとまっていて分かりやすい
  • 筑波大学でデータベースの話をしてきました - kuenishi's blog

    筑波大学の川島先生に呼ばれて木、金と情報システム特別講義Dというやつに参加してきた。こんなことになるとは思っていなかったが、あろうことか講師側で呼ばれてしまい、思えば遠くへ来たものだと感慨深い。フリは「RiakとNoSQLの話をしてもらえたら」という非常に自由度の高い内容なので、せっかくなので僕の知っていることを全部詰め込んで話してやろうと思ったら10分延長してさらにスライド10枚分くらいを消化不良で終了という、みっともない感じになってしまった。かなり端折ってポイントだけ説明したので流れが分からず苦労した方も多いと思うが、まあ僕の性格なので許してほしい。データベースの講義をひと通り終えた院生レベルを想定してスライドを作ったので、もしかすると、わりと難しかったり分かりにくかったりするかもしれないので、わからないことがあったら適当に質問してください。 言いたかったことの流れを僕なりにまとめると

    筑波大学でデータベースの話をしてきました - kuenishi's blog
    t-wada
    t-wada 2014/02/02
    “ACIDとBASEは異なる概念なので混同どころか比較できない” "データストアの分類 NoSQLではなくNoACIDがおもしろい" "昨今のNoSQL Buzzマーケティングに騙されない"
  • BlinkDB: Queries with Bounded Errors and Bounded Response Times on Very Large Data

    Queries with Bounded Errors and Bounded Response Times on Very Large Data BlinkDB is a massively parallel, approximate query engine for running interactive SQL queries on large volumes of data. It allows users to trade-off query accuracy for response time, enabling interactive queries over massive data by running queries on data samples and presenting results annotated with meaningful error bars.

    t-wada
    t-wada 2014/01/27
    正確性のトレードオフ項目を SQL クエリに加えることで、巨大なデータに対して並列検索を高速に行うことができるデータベース(?)
  • Post by @dekasasaki

    12月 - 忘年会シーズンです。酒で記憶を失っている際に、怒ったとか、近くにいた人にカラんだとか、脱いだとか、毛を燃やしたとか、エレベーターホールにズボンが脱ぎ捨てられていたとか、会議室でが発見されたとか、そういう事件が多発する月ですね。皆様いかがお過ごしでしょうか。 微塵も記憶がない状態で、やらかした内容を色々な人から聞かされるにつけ、穴を掘って蓋してセメントで埋めてもらいたくなるのは常ですが、こういう時はどんな対処を取ればいいんでしょう。

    Post by @dekasasaki
    t-wada
    t-wada 2013/12/25
    "「データは事実。事実は消えない。」という大原則を、論理削除などというアンチパターンに汚染されることなく正しい姿を取り出してあげて下さい" 『SQLアンチパターン』に論理削除の章も加えたいなぁ
  • PDOでの数値列の扱いにはワナがいっぱい(2) — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    PHP Advent Calendar 2013 in Adventarの18日目です。昨日は、takc923さんの「PHPのissetの罠」でした。 「PDOでの数値列の扱いにはワナがいっぱい」を書いたところ、以下のように結構反響がありました。 PDOでの数値列の扱いにはワナがいっぱい — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something http://t.co/kDJAWzdMqr | 先日思いっきりハマったところ。 — K.K. (@kkmym) December 16, 2013 他の方も書いてるけど、バインドで型を明示すればおk / “PDOでの数値列の扱いにはワナがいっぱい — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or somethin

    t-wada
    t-wada 2013/12/19
    "PDO::PARAM_INTはboolをintに変換(他は何もしない)" な、なんだってー!?
  • 俺の脳内選択肢が、SQLインジェクション対策を全力で邪魔している — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    PHP Advent Calendar 2013 in Adventarの19日目です。昨日も私の「PDOでの数値列の扱いにはワナがいっぱい(2)」でした。 うっかりtogetterなんか見てしまい、無駄に時間を使ってしまったと後悔した上に混乱してしまい余計にわからなくなってしまった人もいるかも知れません。 そこで、せっかくの機会なので、SQLインジェクション対策について、現在の私の考えをまとめておこうと思います。 選べ ①SQLインジェクション対策にプリペアドステートメントを使う ②SQLインジェクション対策にエスケープを使う もし、上記のような選択にはまってしまったら、あなたのSQLインジェクション対策は、現実的には、ほぼ100%間違っていると言えるのではないでしょうか。プリペアドステートメントとエスケープは、このような対立構造にはありませんから。 なお、この記事は、SQLインジェクシ

    t-wada
    t-wada 2013/12/19
    “(1)リテラル部分ではプレースホルダを使用する (2)リテラル以外の部分はホワイトリストで検証する” とても整理されている
  • InnoDBのロックの範囲とネクストキーロックの話 - かみぽわーる

    この記事はMySQL Casual Advent Calendar 2013 3日目の記事です。 はじめに 以前にSELECT ... FOR UPDATEとロックの挙動 - walf443's blogの記事にTwitterで少し言及したんですが、それの補足というか、InnoDBのロックの範囲について僕はこう理解していますよという話です。 MySQLといえば、InnoDBをネットワークサーバとして使うためのフレームワークであり、SQLはInnoDBのインデックスにアクセスするためのDSLといっても過言ではないでしょう。 InnoDBのロックとはつまるところインデックス行のロックなので、InnoDBのロックの範囲を理解するためにInnoDBのインデックスについて少し前置きしておきます(だいぶ端折ったけど長くなった…)。 クラスタインデックスとセカンダリインデックス すでにInnoDBのイン

    InnoDBのロックの範囲とネクストキーロックの話 - かみぽわーる
    t-wada
    t-wada 2013/12/12
    MySQL InnoDB のロックの種類とその範囲、そしてロック範囲の確認方法。とても勉強になる。
  • 複合主キー「否定派」と「許容派」の論争 - 設計者の発言

    定期的に取り上げたくなるDB設計に関する話題である。WEBアプリが一般化して以来、議論されてきた事柄がある。テーブルの主キーを「単独主キー」のみとするか、複数項目を組み合わせた「複合主キー」を必要に応じて使うべきかという問題だ(*1)。複合主キーに対する「否定派」と「許容派」に分かれた議論は劇烈で、宗教論争のようにも見える。 主キーというものは、テーブルの存在意義といってもいいほどに重大な要素である。にもかかわらず、なぜそんな基的なレベルの議論が始まってしまったのか。2つほどの理由が考えられる。 まず、単独主キーとしてIDを機械的に置くやり方(ID方式)が「オブジェクト指向」と相性がよかったからだ。オブジェクトは固有の識別子(オブジェクトID)を持つので、これに相当するIDをテーブルの主キーとすることで、オブジェクトとDBの設計問題を統合できると考えた技術者が少なからずいた。そのアイデア

    複合主キー「否定派」と「許容派」の論争 - 設計者の発言
    t-wada
    t-wada 2013/12/02
    "複合主キーを許容すべきかどうかは「ナチュラルキーか代理キーか」の議論とは関係ない(直交している)"
  • その選択、ちょっと待った!NoSQLデータベースへ乗り換える前に検討すべき3つのポイント

    最近、どうも安易に「NoSQLにすれば厄介なDB設計から開放される」と考えている人が多いように思えて仕方がない。だが待って欲しい。当にNoSQLと呼ばれるデータベースを使えばアプリケーションの開発・運用の苦しみから逃れられるのだろうか。もちろん「そんなことは無い!!絶対にだ!!」と私は考える。今日はその理由について語ろうと思う。 トランザクション先日、リレーショナルデータベースにおけるDB設計についてセミナーで解説したばかりだが、リレーショナルデータベースにおけるデータの整合性は何もDB設計だけが担保しているわけではない。リレーショナルモデルと同じかそれ以上に欠かせないのがトランザクションだ。 トランザクションがあるおかげで、トランザクション終了後のステータスは「成功」か「失敗」の2つしかないということが保証される。すなわちオール・オア・ナッシングだ。もしトランザクションの途中で何らかの

    その選択、ちょっと待った!NoSQLデータベースへ乗り換える前に検討すべき3つのポイント
    t-wada
    t-wada 2013/12/02
    “NoSQLデータベースはリレーショナルデータベースの置き換えにはならない” "最も理想的な使い方は、リレーショナルデータベースと併用するということ" そのとおりすぎる
  • DBエンジニアのための技術勉強会で発表したスライドを公開しました。

    DBエンジニアのための技術勉強会というイベントで、リレーショナルモデルにおけるDB設計について話す機会を頂いた。リレーショナルモデルは非常に重要であるにも関わらず、現場ではないがしろにされてしまっている。その結果、アプリケーションのロジックを上手くクエリで表現できず、開発現場では非効率な開発が行われ、多くの人がデスマ的な状況に追い込まれている。そういう危機意識について、これまで何度かブログでも書いてきたし、WEB+DB Pressで連載している動機もその点にある。リレーショナルデータベースはやはりリレーショナルデータベースとして使うべきだ。そのための鍵となるのが、DB設計である。 今回はなんと約2時間の持ち時間を頂いた。リレーショナルモデルについてはこれまで何度か話す機会を頂いたが、2時間というのは最長記録である。それに合わせてスライドもボリュームたっぷりのものになった。過去のスライドと

    DBエンジニアのための技術勉強会で発表したスライドを公開しました。
    t-wada
    t-wada 2013/11/29
    “リレーショナルモデルをよく理解すること” "正規化(および直交性)を実践すること" "リレーショナルモデルモデルの限界を理解すること" 参加したかったなぁ(セミナー講師をする日と被っていた orz)
  • データベース設計徹底指南

    DBエンジニアのための技術勉強会(第3回)で使用した資料です。主にリレーショナルモデルと正規化について解説しています。リレーショナルモデルの限界について正しく認識してこそ、リレーショナルモデルを理解したと言えると思います。

    データベース設計徹底指南
    t-wada
    t-wada 2013/11/29
    リレーショナルモデルと正規化について、基本からみっちりと解説している骨太の資料。 RDBMS を使う人はみんな読んで欲しい。
  • Amazon | Joe Celko's Complete Guide to NoSQL: What Every SQL Professional Needs to Know about Non-Relational Databases | Celko, Joe | Library Management

    ¥¥7,7027,702 () 選択したオプションを含めます。 最初の月の支払いと選択されたオプションが含まれています。 詳細

    Amazon | Joe Celko's Complete Guide to NoSQL: What Every SQL Professional Needs to Know about Non-Relational Databases | Celko, Joe | Library Management
    t-wada
    t-wada 2013/10/25
    Joe Celko が NoSQL の本を書いた……だと……!?
  • ORDER BY 狙いのキーの話2

    Kenn Ejima @kenn 普通のSQL処理と逆に、ORDER BYするカラムにだけインデックス張って、あとはソート順にレコードを取り出しながらWHERE句を評価していく、みたいな処理ってできないの? 2013-10-20 23:34:47 Kenn Ejima @kenn 男女のマッチングは、個人を大量の属性をもった多次元ベクトルへと正規化して、その多次元ノルム空間上での近さ順に(P)R-treeとかで取り出すのが良さそうなんだけど、MySQLでやれるかなぁ。PostgresならKNNGiSTが使えそうだけど、やっぱり処理順がネックか。。 2013-10-21 00:03:26

    ORDER BY 狙いのキーの話2
    t-wada
    t-wada 2013/10/23
    "ORDER BY狙いのインデックスにFORCE INDEXしてやるのでFAっぽいですね。LIMIT件数に達しなければフルスキャン(+インデックスとの往復)になっちゃいますが、現時点では一番マシな方法かも"
  • 長年の議論に終止符 -- MySQL、MariaDB、PostgreSQLのオプティマイザ/エクゼキュータ比較 - interdb’s blog

    https://mariadb.com/kb/en/optimizer-switch/にあるように、MariaDBのオプティマイザはかなり改良されている。 では、MariaDBのオプティマイザ/エクゼキュータはどの程度優秀か、4つのSELECT文の実行を通してMySQLと(ついでにPostgreSQLと)比較してみる。 (2014.12.3追記:オプティマイザについては省略してますが、こんながでます。) 結論を先にいえば「MySQLは検索が速い」というのは都市伝説。MariaDBはがんばってるけどPostgreSQLにはまだまだ及ばず。 *念のため。これはベンチマークじゃないよ、オプティマイザ/エクゼキュータの機能比較です。 自分で再確認したい場合はこちらにスクリプト群と実験のやり方を簡単に書いたので参照のこと。 調査環境 同一マシンにMySQL5.6.14、MariaDB10.0.4、

    長年の議論に終止符 -- MySQL、MariaDB、PostgreSQLのオプティマイザ/エクゼキュータ比較 - interdb’s blog
    t-wada
    t-wada 2013/10/23
    “結論を先にいえば「MySQLは検索が速い」というのは都市伝説。MariaDBはがんばってるけどPostgreSQLにはまだまだ及ばず”
  • 好きな子のことかslow query logのことばかり考えてほかのことがおろそかになる性格なおしたい #isucon - かみぽわーる

    ISUCON3 予選おつかれさまでした! うちのチームのことはだいたいやっぽさんが書いてる通りなんですけど、おもに僕がやったこととかAMI提出後に振り返ってみたことを書いておきます。 振り返りはコチラ。 【ISUCON3】予選の振り返り【ぶっちゅぶす】 - Togetter まず今回ISUCON3でチームを組む段階で考えていたのは、チームメンバーの共通言語は揃えておいたほうがいい(当たり前と思うかもしれないけど前回バラバラすぎて死んだ)ということと、得意分野がかぶってないチームにしたいと思ってた。その点でいうと、まだ予選がおわったところだけど今まで参加してきた教訓を活かせたと思う。 あとは前回力を出し切れない結果で悔しい思いをしたというのがあって、予選通過すれば次につながるので、横着せずに普段やってることで着実にスコアを伸ばしたい、fujiwaraさんのような役割を目指したいと思ってた。

    好きな子のことかslow query logのことばかり考えてほかのことがおろそかになる性格なおしたい #isucon - かみぽわーる
    t-wada
    t-wada 2013/10/07
    "OFFSETをWHEREに変換する" “世間にはORDER BY created_at DESCする人がとても多い" "挿入順に単調増加する値でソートしたいんだったらAUTO_INCREMENTしてるPRIMARY KEYがあるでしょう” "created_atにINDEX張るのも空間効率の無駄"
  • ORDER BY 狙いのキーの話

    yoku0825 @yoku0825 @con_mame ああ、やっぱりそうなりますよね。。こっちは息をするくらい当たり前のことだと思っていても向こうは違って、向こうが当たり前に思っていることも俺は知らなくて、あぁ…ってなります。。 2013-09-14 23:29:11

    ORDER BY 狙いのキーの話
    t-wada
    t-wada 2013/09/15
    ほとんどの場合 LIMIT が付いて検索される Web 系システムにおいて MySQL のインデックス設計を WHERE 狙いでは無く ORDER BY 狙いにするという話
  • Devsの常識、DBAは非常識

    [D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama

    Devsの常識、DBAは非常識
    t-wada
    t-wada 2013/09/14
    ラジオ DJ 形式新しいな! 面白いし、わかりやすい。
  • qpstudyで発表したスライドをアップロードしました。

    日、qpstudyで「データベースとは」という内容について、そして「リレーショナルモデルとは」という内容について話す機会を頂いた。リレーショナルモデルという硬い内容であったにも関わらず、出席者の皆さんには最後まで良い反応をして頂けたように思う。実はリレーショナルモデルについて誤解している、あるいは知らない人が当に多い、そして良い解説書がないということを普段問題として感じており、そういった背景から今回qpstudyの話を引き受けさせて貰った。今回発表した内容が皆さんのお役に立てば幸いである。 発表の内容はほぼ現在WEB+DB PRESSで連載している「理論で学ぶSQL再入門」のいくつかの回のものを要約したものになっている。連載ではさらに詳しい内容について説明しているので、興味のある人はぜひWEB+DB PRESSのバックナンバー(連載はVol.68〜)を購入して頂きたい。 日発表したス

    qpstudyで発表したスライドをアップロードしました。
    t-wada
    t-wada 2013/07/29
    さすがは nippondanji ッッ!! なんというストロングスタイルッッッッ!!! (特に二つ目の資料が凄い)
  • DB migration の down / rollback 方向のメソッドは必要なのか

    Yasuharu Nakano @nobeans rakeでmigrationしてるrails方面の方々は、まじめに双方向(change/rollback)のmigrationスクリプト書いてるのでしょうかね。とりあえずchange方向だけ書いておいて、練度が上がったらrollback方面も頑張るとか? 2012-12-18 14:33:33

    DB migration の down / rollback 方向のメソッドは必要なのか
    t-wada
    t-wada 2013/05/02
    ダンプを戻せば良いかと思えばそうでもないという議論をしたことを思い出したのでまとめました
  • Edis

    Edis is a protocol-compatable Server replacement for Redis, written in Erlang. Edis's goal is to be a drop-in replacement for Redis when persistence is more important than holding the dataset in-memory. Edis (currently) uses Google's leveldb as a backend. Future plans call for a multi-master clustering model. Near term goals are to act as a read-slave for existing Redis servers. Learn more → Is Ed

    t-wada
    t-wada 2013/04/30
    Redis とプロトコル互換なサーバ。 Erlang で実装されている。