SQLer 生島勘富 のブログ

RDB・SQLの話題を中心に情報発信をしています。

2013-01-01から1年間の記事一覧

「艦これ」についてのまとめ #艦これ

「艦これ」についてというには、遠いけれど、「艦これ」からソーシャル系のシステムについて考えた話についてまとめました。 一覧 「艦これ」から、ソーシャル系のサーバ構成を考える http://d.hatena.ne.jp/Sikushima/20130901/1378021345 お手製クラスター…

もうちょっと「艦これ」からSQLを考えてみる4

前回の続き。 DBサーバの処理を肩代わりして負荷を減らせるとしても、 最後のソート(これは問題になるなら禁止すれば良い) IF文 四則演算 だけです。 「IF文、四則演算をAPサーバやクライアントで処理すべき」と考えられるのは、設計段階にSQLでどこまでで…

もうちょっと「艦これ」からSQLを考えてみる3

前回の続き。 前回のパターンであれば、全体を(パフォーマンス・サーバの負荷・開発工数・メンテナンス性)を鑑みて、IF文と四則演算は、DBサーバより、APサーバ。APサーバより、クライアントにある程度キャッシュさせて、処理もクライアントで行った方が良…

もうちょっと「艦これ」からSQLを考えてみる2

前回の続き。 「艦これ」で起きた障害は、カタログスペックの100分の1以下の処理量で発生ししていると思われる。その原因はDBサーバに対する無理解、SQLに対する無理解から起きているのでは?という考察です。 もちろん、中身は知らないけれどね。 どこで処…

シェルが使えないレンタルサーバで Facebook API を使う

PHP 5.2 なら JSON は標準で入っていますからこんな苦労はないですが、レンタルサーバで PHP 5.1.6、シェルは使えない。という環境で Facebook API を使うのに嵌まった。シェルが使えないサーバで開発ってこんなに大変なのね(苦笑) もう二度とやりたくない…

もうちょっと「艦これ」からSQLを考えてみる1

かなり前に下書きをしていたんだけれど、バタバタしていてほったらかしになっていたものです。タイミングがズレたけど、まだ「艦これ」をやっている人がいるみたいなのでアップします。 私が「艦これ」の設計をするなら 「軍艦を擬人化する」という発想は、…

「艦これ」もう少し思い出して考えてみた

「艦これ」はあんまり関係ないのですが、スケールアウトについて。 「艦これ」は既に MySQL Cluster を使っているなら関係ないのですが、何度も書きますけれど、「JOIN禁止」はスケールアウトと関係ない。 Twitter規模になれば別の考え方が必要になりますが…

「艦これ」から、ソーシャル系のサーバ構成を考える

私は、ソーシャル系とは縁遠い仕事ばっかりしているのですが、そういう依頼も若干増えてきたので話題になっている「艦これ」をお盆にやってみた。 残念ながら、「艦これ」の魅力は分からなかった。しかし、ミッションを用意されると、「クリアーしたい」とい…

SQL文を組み立てるには?SQLが書ける様になるには?

SQL文ができない人は、どこまでも文法で考えようとしている。 私が、SQLに違和感を感じずに理解することができたのは、文法を気にしてなかったからで、私の勉強法というか、どうやって習得してきたのかを整理してみました。 例えば IN と EXISTS の違い カラ…

RDBMSを使う以上、SQLを使いこなさなければいけない

何度も何度も言ってるけれど、「処理を分割した方がDBサーバの負荷が減る」と感じるのは勘違い。 http://d.hatena.ne.jp/Sikushima/20110809/ http://d.hatena.ne.jp/Sikushima/20110810/ http://d.hatena.ne.jp/Sikushima/20110811/ http://d.hatena.ne.jp/…

CODE VS 2.1 をSQLでやるとどうなる7

前回、こんな「落ちゲー」の ブロックを一つ一つ加算していって、合計が10になる組合せをSQLで探しました。 今回は消すお邪魔ブロック(最初から10以上(= 11)のブロック)を探すSQLを書きます。 繋げるか、一旦テーブルに書き出すか。 前回でも充分な長さ…

CODE VS 2.1 をSQLでやるとどうなる6

前回の続きです。今回は消すブロックを選択するところまで作ります。 作るのは http://codevswc.jp/jpn/rule.html これです。 是非、ルールをよく読んで、「自分なら SQL でこういう方針で作る」 「Javaなら、.Netなら、Rubyなら…… こういう方針で作る」 と…

CODE VS 2.1 をSQLでやるとどうなる5

前回の続きです。今回は、パックを投下するところまでを作ります。 作るのは http://codevswc.jp/jpn/rule.html これです。データは、与えられるInputのサンプルとします。 是非、ルールをよく読んで、「自分なら SQL でこういう方針で作る」 「Javaなら、.N…

CODE VS 2.1 をSQLでやるとどうなる4

前回の続きです。今回はパックを回転するするところまでを作ります。 作るのは http://codevswc.jp/jpn/rule.html これです。データは、与えられるInputのサンプルとします。 是非、ルールをよく読んで、「自分なら SQL でこういう方針で作る」 「Javaなら、…

CODE VS 2.1 をSQLでやるとどうなる3

前回の続きです。 作るのは http://codevswc.jp/jpn/rule.html これです。所謂、「落ちゲー」もある程度、SQLで作れます。 是非、ルールをよく読んで、「自分なら SQL でこういう方針で作る」 「Javaなら、.Netなら、Rubyなら…… こういう方針で作る」 と想像…

CODE VS 2.1 をSQLでやるとどうなる2

作るのは http://codevswc.jp/jpn/rule.html これです。 所謂、「落ちゲー」をSQLで作るにはどうしたらよいか?ということになります。 かなり複雑でルールを良く読み込まないの理解できないでしょう。 是非、よく読んで、「自分なら SQL でこういう方針で作…

CODE VS 2.1 をSQLでやるとどうなる1

CODE VS というコーディングコンテストに参加しました。 CODE VS 2.1 で勝てなかったからネタに 結果は惨憺たるもので、私は1手読みまでで、Largeの条件で9億ぐらいのスコアー。時間とメモリーさえあれば無限に先読み(総当たりで)できるけれど、数手先まで…

MySQLで全文検索2

前回(MySQLで全文検索1)の続き。 my.cnf(my.ini)の調整 FullTextIndex でインデックスされる最小の文字数を確認する。 MySQL5.5以下 mysql> SHOW VARIABLES like 'ft_min_word_len'; +-----------------+-------+ | Variable_name | Value | +------------…

MySQLで全文検索1

私は、MySQLをほとんど使わないのであまり考えたこともないのですが、MySQLの全文検索はブランクやカンマで区切られた単語単位でしかインデックスしてくれないので、単語の区切れのない日本語ではほぼ使えません。 そこで nGram でカットするファンクション…

SQL的(集合的)考え方と、ループ(手続き型)の考え方3

問題を少し変更 問題)部品在庫から、作成可能な製品の情報をとる。 ※本来はマスタテーブルと組み合わすべきですが、ツールの関係上2テーブルしか同時に表示出来ないので名称で結合する形になります。 SQLで考えるなら という風に考えます。 言い換える 『在…

SQL的(集合的)考え方と、ループ(手続き型)の考え方2

もう一度問題 問題)部品在庫から、作成可能な製品名をとる。 ※本来はマスタテーブルと組み合わすべきですが、ツールの関係上2テーブルしか同時に表示出来ないので名称で結合する形になります。 SQLで考えるなら 答えは SELECT 製品名 FROM 部品表 INNER JOI…

SQL的(集合的)考え方と、ループ(手続き型)の考え方1

前回、勉強会に参加したときに感じたことの続き。 みんなはどう考えているか? この問題は正答率が低かった。答えを見たら「あぁ〜」ってなるレベルですが、なかなか、出てこないようです。 問題)部品在庫から、作成可能な製品名をとる。 ※本来はマスタテー…

久しぶりに更新

昨日、SQLWorldの「みんなでSQLを書いてみよう」というハンズオンの企画の勉強会に参加した。 最初にお知らせ 次回の企画のために、「実務で困っているSQL」を募集するそうです。 「こんなのSQLで出来るの?」という問題があれば、コメントやメール info@g1s…