タグ

2009年4月15日のブックマーク (8件)

  • B木 - naoyaのはてなダイアリー

    昨年から続いているアルゴリズムイントロダクション輪講も、早いもので次は18章です。18章のテーマはB木(B Tree, Bツリー) です。B木はマルチウェイ平衡木(多分木による平衡木)で、データベースやファイルシステムなどでも良く使われる重要なデータ構造です。B木は一つの木の頂点にぶら下がる枝の数の下限と上限を設けた上、常に平衡木であることを制約としたデータ構造になります。 輪講の予習がてら、B木を Python で実装してみました。ソースコードを最後に掲載します。以下は B木に関する考察です。 B木がなぜ重要なのか B木が重要なのは、B木(の変種であるB+木*1など)が二次記憶装置上で効率良く操作できるように設計されたデータ構造だからです。データベースを利用するウェブアプリケーションなど、二次記憶(ハードディスク)上の大量のデータを扱うソフトウェアを運用した経験がある方なら、いかにディ

    B木 - naoyaのはてなダイアリー
    tgk
    tgk 2009/04/15
    SSD のランダムアクセス性能を活かすことで、二次記憶上でも大量のデータを高速に検索できるようになったという話
  • How MySQL executes ORDER BY

    In last couple of weeks there has been a tide of ORDER/GROUP BY-related optimization bugs, where I was the fixer or the reviewer. This wasn’t an easy job because there is no sane description of how GROUP BY/ORDER BY handling is supposed to work. To figure it out, I had to write an explanation of how it works. The first part is about ORDER BY. Hopefully there will be subsequent parts that will show

    How MySQL executes ORDER BY
    tgk
    tgk 2009/04/15
    The second method ではtemporary tableが絶対できないのか。よくわからない
  • 8maki.jp

    This domain may be for sale!

    tgk
    tgk 2009/04/15
    Livemocha: 課題を提出するとネイティブが添削してくれる
  • H-Yamaguchi.net: Steve Jobsのスピーチ、山口訳

    昨年6月12日のスタンフォード大学卒業式でSteve Jobsが行ったスピーチが話題になってからもう1年になる。これについては、市村佐登美氏による名訳がとむさとう氏のメールマガジン経由でかなり広く出回ったと思う(注:この部分は修正した。コメント欄参照)。それに対抗する意図も何もないんだが、最近これを授業でとりあげた際に、山口版の訳を作ったので、いまさらとは思うが、転載しておく。教育機関向けの利用を許諾していただいているから、とむさとうさんの訳をそのまま使ってもよかったわけだが、もとになっているスタンフォードのサイトにある文章がJobsの実際にしゃべったことと微妙にちがっていることと、訳文の文体に関する個人的好みなんかの点から、自分でやってみた。結果として文章が似通っているところも多いが、一応独自の訳のつもり。 I am honored to be with you today at you

    H-Yamaguchi.net: Steve Jobsのスピーチ、山口訳
    tgk
    tgk 2009/04/15
    "connecting the dots"
  • ネィティブと相互添削で語学学習 | Lang-8

    You can easily ask native speakers questions related to English or foreign language studies. In addition to the foreign language diary function, there are also text correction and pronunciation check functions!

    ネィティブと相互添削で語学学習 | Lang-8
    tgk
    tgk 2009/04/15
  • English as a Second Language Podcast

    Choose from over 1800 audio lessons + written guides Listen and read anywhere on your computer or mobile device Improve your speaking and listening quickly with specially-designed lessons for intermediate and advanced learners

    tgk
    tgk 2009/04/15
  • Using filesort

    去年ソートに関する記事を書いたが、今日はその続きである。 MySQLでEXPLAIN SELECT...を実行するとExtraフィールドでよく見かける「Using filesort」という文字列。Filesortって一体なんだろう?と思ったことはないだろうか。単刀直入に言ってFilesortの正体はクイックソートである。 クエリにORDER BYが含まれる場合、MySQLはある程度の大きさまでは全てメモリ内でクイックソートを処理する。ある程度の大きさとはsort_buffer_sizeであり、これはセッションごとに変更可能である。ソートに必要なメモリがsort_buffer_sizeより大きくなると、テンポラリファイル(テンポラリテーブルではない)が作成され、メモリとファイルを併用してクイックソートが実行される。 Filesortは全てのソート処理において実行されるわけではない。前回の記事

    Using filesort
    tgk
    tgk 2009/04/15
    order byの実行タイミングは実装次第。MySQLなら「ソートしてからjoin」「joinしてからソート」どちらもあり得る
  • SQLの論理形式 - ミックのブログ

    新人の子たちに SQL を教えてきました。GROUP BY のキーに指定していない列名をSELECT句に書いてはいけない、という禁則の意味がよく理解できずに困っている例を多く見かけました。特に、GROUP BY句で列にCASE式を使った場合、もはやそれはキーとして元の列とは同じでありえない、というところの理解が難しかったよう。 一般に、GROUP BY句を指定したら、SELECT句に書ける要素は三種類に制限されます。 GROUP BYで指定した集約キー 集約関数 定数 そういえば私も初心者のころ、この制限の必然性が分からなくて悩んだ記憶があります。GROUP BYがパーティション・カットの機能を果たす、ということをイメージできれば、この種の疑問は解消するのですが、それが身体感覚として身につくのはちょっとかかりそう。 SQL を最初に学ぶとき、このあたりで混乱しやすいのは、きっとSQLを書く

    SQLの論理形式 - ミックのブログ
    tgk
    tgk 2009/04/15
    「SQLの実行順序は FROM → WHERE → GROUP BY → HAVING → SELECT (→ ORDER BY)」. 仕様的にはこれでFA. ただしselectしていない列をorder byに指定できないわけではない