Wikipediaめくりでは、MySQLに格納したWikipedia記事をランダムに表示している。速度を気にしないなら、 SELECT * FROM docs ORDER BY RAND() LIMIT 10; で良いのだけど、レコード数が多いと遅くて使いものにならない。そこで、記事IDを1から始まる連番になるようにDBに格納している。このようにすると、アプリケーション側でDBに格納されている文書IDが全て分かるので、ランダムに文書IDを10個選...
[http://www.onflow.jp/blog/archives/2006/04/30.html:title=30万個ぐらいの静的ファイルを配信するサーバーの選び方] で静的な配信サーバに関することが述べられている. naoyaさんが公開されてるInside Hatena Bookmark’s Backend の資料などを読むと、mod_perlなサーバーやMySQLサーバーの選び方の参考になったりするわけですが、世の中を見渡してみても、静的コンテンツ(画像とか)を配信するサーバー...
SELECT item, tag, log2(tf.times + 1) / log2(total) * (log2(n / df.times) + 1) AS tfidf FROM tf LEFT JOIN df USING(tag) LEFT JOIN (SELECT item, count(tag) total FROM tf GROUP BY item) AS a USING(item) CROSS JOIN (SELECT count(id) AS n FROM items) AS b WHERE item="j"; 実際はユーザ変数を使った方がSQLが短くなっていいと思う。 SELECT @total := count(tag) FROM tf WHERE item = "j"; SELECT @n := count(id) FROM items; SELECT item, tag, log2(tf.times + 1) / log2(@total) * (log2(@n / df.times)...