6. id name pass is_deleted 1 ryu xxx FALSE 2 ken xxx FALSE 3 honda xxx TRUE 8. id name pass is_deleted 1 ryu xxx FALSE 2 ken xxx FALSE 3 honda xxx TRUE 3 honda xxx FALSE
このエントリでは Ruby on Rails と MySQL を使って日本語の全文検索を行う方法を記述する。Ruby on Rails のバージョンは 2.0.2、MySQL のバージョンは 5.0.67、Tritonn のバージョンは 1.0.12、Hyper Estraier のバージョンは 1.4.10 を使用した。サンプルの文章データとして、あらゆる日本人にとって極めて身近な著作権切れ文章である『ドグラ・マグラ』と『黒死館殺人事件』を利用した。処理のために整形したデータは本エントリに添付しておく。またデータベースへアクセスするコードではマイグレーションを除きできるだけベンチマークを取るようにし、その結果は本エントリの最後に記載する。 ページネーション Rails でページネーションを実現する will_paginate という plugin は ActiveRecord に標準でつ
JPAは、SQLを隠蔽するものではなく、「SQLを統一的に効率良く書けるようにするもの」だからです。Gavin(Hibernateのfounder)はいってました「HibernateはSQLを隠蔽するものではない。SQLを統一的に効率良く書けるようにするものだ。だから、SQLの知識はちゃんと持っていなければならない」と。 「RDBMSの時代の終わりが見えてきた」についてそろそろ一言言っておくか - yvsu pron. yas こちらもメモ。この記事でひがさんの言いたいことはこれじゃないので、ほんとは引用元にリンクしたかったけど、多分引用とかではないので、ここだけ。 Hibernate って、発行される SQL とその発行タイミングを想像しつつ書くのがいいと思う。隠蔽っていう発想は Hibernate に関してはほんとにヤバイw まあ具体的に解決策はどうしたらいいって言えないんで、与太話な
「諸君、私はDL/Iが好きだ!」な現場にいるとどこの世界の話やら、と思うタイトルのエントリを読んだけど、確かにそのとおりかな、と思うことはあります。 RDBMSは、関係代数というきれいな理論をベースにしていて、関係を理解しやすくプログラムも書きやすく、それまで使われていたネットワークDBにとって替わりました。 2008-12-12 階層型DBのIMS-DBやネットワーク型DBのAIM-DBもまだまだ現役です。その理由には信者がいたりレガシーを捨てられない、という事情があることは否めない。古い技術しか持たない人を食わせる手段であったり。しかし、未だにバージョンアップがされ続けている背景には、それなりに有用な場面がある、という事情があります。シーケンシャルアクセスでバッチ処理、みたいな処理はホストのプラットホーム的特性もあいまってやっぱり早い。でもあっちのデータとこっちのデータとみたいなのは苦
SQL に痛痒感を感じる日々を過ごしている身としては、RDBMS がレガシーだというのは、まったく同感ですが。 SSDを前提にしたプログラムモデルになれば、そもそもシーク時間と戦うこともなく、ストレージを意識せずにプログラムが組めます。そうなったとき、アプリケーションのデータを永続化するためにRDBMSをわざわざ使うことはないでしょう。 2008-12-12 そんなことないと思います。理由は以下の2点。 フラッシュの書き換えブロックサイズは数キロバイト以上 トランザクションは意識して実装せざるを得ない フラッシュメモリはランダムリードできますが、DRAM のようにランダムライトできるわけではありません。書き込みが非常に遅いのに加えて書き換え回数の制限もあるので、メインメモリと同様のプログラム手法を使うのは難しいと思います。 次にトランザクションについてですが、組み込み型データベースとして
SQLって便利っちゃー便利。まぁそんなことは今更gdgd言わなくてもいい。 「理屈通りに作れる」ことに美しさを感じる人には、たまらなく嬉しいものだろう。まぁ現実のシステムだと、なかなか理屈通りに行かなかったり、理屈を曲げないと遅かったりするんで、実務家はイライラするんだろうけど。そんなイライラもあってか、つい RDBMSの時代の終わりが見えてきた に「うんうん」と思ってしまう。 RDBの外見って美しい。つーか、SQLは美しい。まぁPL/Iっぽいっつーか、COBOLっぽい臭いが漂うのがあまり好きになれないけど、背景にある理論は美しい。そんなところが好きな人は多いんじゃないかと思う。 じゃあ実装する方はどうかと言えば、なかなか微妙だ。今まで2つSQL絡みの実装に関わったことがあって、そのうち1つはフルスクラッチで作ったんだけど、なかなか難物だった。私の実装が稚拙なせいってのもあるんだろうけど、
クラウドと一緒にやってきたもの 最近、クラウドが流行ってます。 GoogleのMapResuceから始まって、MicrosoftのAzureまで、大手のクラウド製品が出揃った感じ。 で、そこで、こんなクラウド製品が出ましたというときに、必ずといっていいほどそのクラウド用のデータベースの説明があります。そして、それはRDBMSではありません。 GoogleだとBigTable、MicrosoftだとSQL Data Services、あとはAmazonのSimpleDB。どれも、基本的にはひとつのテーブルにハッシュコードでアクセスするようになっています。 ほかのクラウド製品も、Oracle Coherenceだったり、楽天のRomaだったり、非RDBMSのデータストレージを提供します。 クラウドというわけではないけど、mixiのTokyo TyrantやApache CouchDBも、RDB
短期間でCPANに上がってる名が通ったO/Rマッパ+αを目を通して、ORMマッパの必要最低限なコンポーネントを整理した。ぶっちゃけもっと削っても良いが一般的にするためにもリストアップ。 ORM 基幹的なクラスで使い方はORMによりけりで、特に無くても良い。 ORM::Schema テーブル定義を行う場所。物によってはデータベースの定義だけ行って。テーブルの定義はORM::Table的な物で行う。 どっちにしろテーブルの定義には変わらない。 大ざっぱに言うと、このクラスからselect系のメソッドが生えている。 ORM::Iterator 結果の行を取り扱うイテレータ。 DBICならDBIx::Class::CursorになりMoCoならDBIx::MoCo::Listが担当。 ORM::Row 結果の行ごとのオブジェクト。だいたいはORM::Schema or Table で定義してるco
日記だけで4億件のデータ ミクシィが運営するSNS「mixi」は、2007年7月末段階でユーザー数が1110万人。人が12人集まれば、1人はmixiユーザーというわけだ。ユーザーのアクティブ率(ログイン間隔が3日以内)は約62%と高く、2007年4月から6月の月間平均ページビューは117.5億に達した。日記だけでも4億件以上に上るなど、蓄積するデータ量も莫大。2004年3月のサービス開始から、わずか3年半で現在の巨大コミュニティーへと発展したのだ。 ミクシィは、「LAMP(OSのLinux、WebサーバのApache、DBMSのMySQL、開発言語のPerl、PHP、Python)」と呼ばれるWebシステム向けの標準的なオープンソースソフトウェア(以下、OSS)でシステムを自社開発し、安価なPCサーバを1000台以上連ねる超分散構成でmixiのサービスを支えている(広告配信など周辺機能では
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く