ひまつぶし雑記帖

10万回ループ

2009/8/6 [00:10:44] (木) 天気

10万以上あるレコードをそのままループにしてたら当然10万回…て、当たり前だけど、今日、事務所で若いプログラマさんに指摘されて目からウロコ。SQL、GROUP BY である程度まとめて取り出して、ループ回数を減らせば良い、と。試しに、GROUP BYでちらっとまとめてみたら10万回のループ2000回程度になって、はっきりスピードUP。
SQLの修行が全然足りませんなぁ。

»電子書籍制作代行についてはこちら

スクリプトいじり

2008/11/18 [21:02:30] (火) 天気

相変わらず仮死状態の平日。あれこれ困ったもんだ。それでも、ふたたびみたびよたびで、帰宅後へろへろ状態でスクリプトいじりを再開。
書き込み系にAjaxを使わないで素直にページ遷移させることにしたら、わかりやすくなった。考えなきゃいけないことが減るわけなんで、当然だ。
ただ、Ajaxでデータを取ってきてコンテナに表示させるのは、使う側も気楽な感じだろうし、なにより、ページを新たに作る必要がないのでこっちもラクなんだよねえ。思わぬ利点。ちょっとした閲覧表示系を追加するのにちょうどいいかも。

postgreqlで
select *,(select count(*) from TABLE where NNN=T.MMM) from TABLE as T where YYY=ZZZ
一度問い合わせて、その結果の一部を条件にして select の中でさらにselect してみたら、がくんと重くなった。以前、同じことをして格段に早くなったのは、条件を間違えていてゼロ件だったから。
これならperlでループして一行ずつ $dbh->selectrow_array した方が早かった。sqlだとページ表示まで10秒以上かかったのがperlでループの方は3秒弱。
で、この3秒弱が遅くていらつくんでsqlを、と思って試したんだけど、よくみるとsqlの方が数倍遅いんで話はふりだしに。
登録されている本の冊数をカウントするところ。そろそろ9万冊超えてるし、数かぞえるだけで大変なのかなあ。…て、たかだか9万でpostgresqlが重くなるはずはない。テーブルの作り方とかインデックスとかの問題。
薄い髪をかきむしってもなにもでてこないんで、件数表示はあきらめて、あるなし表示に変更。これで表示まで2秒を切った。
SEOがどーしたとかUIがどーしたとかリッチな表現がどーしたとかWEB標準がどーしたとか、あれこれあるけど、webサイトって絶対にこれが正しい、なんてことはほとんどない。いつも変化するし、中には声のでかいやつの理屈だけなんてのもあるだろう。でも、ページの表示に関しては単純で、早さは絶対。

今回はある程度書き込み部分も作りながらなので遅々として進まず。だるいなあ。

»電子書籍制作代行についてはこちら

簡単が一番だ

2008/8/15 [20:24:08] (金) 天気

世間はすっかり夏休みモードなのか。電車がガラガラで親子連れも目立つ。

sql一発でデータを引っ張り出すのがなにかと便利で安全、なのはよくわかる。でも、副問い合わせが入って重くなるんだったら、そこはスクリプトを挟んだほうが良くないか、と。あいかわらずSQLとスクリプトの関係というか、よくわかってないんだよなあ。そこんとこperlで連想配列使った方が早くないか、とか、それ引っ張ってくるならSQLでしょ、とか。
ここんとこウチでは脱データベース、ていうかDBを使うほどでもない量で作りも単純なテキストデータが対象。perlだけでごにょごにょしていて、気楽でいいなあ、と改めてしみじみつくづく。たいしたことをしてるわけでもないのに、意図どおりに動かない・見えないのは、perlなのかSQLなのか、Javascriptなのかcssなのか、とあれこれ絡んでめんどくさいんだよね、WEBサイトって。
なんとかもっと簡単にできないものかしらん。

いろんなことが面倒になってきてるような気がするのは歳のせいなのかなあ。

»電子書籍制作代行についてはこちら

めも

2008/8/12 [13:18:25] (火) 天気

簡単なパズルで現実逃避。

データを、表示順で並べて、同じ表示順の中ではID順で並べる、てのは当たり前のありがちで、SQL文だとたぶん
order by  displayorder asc, id desc
てな感じでさくっと書ける、のかな。

これをどうしたもんかとちょっと悩んで。…hashに放り込んでループすればイケる。

foreach (keys %{ $ref } ){
    $pos->{ $ref->{$_}->{displayorder} }++;
    $disp->{ $ref->{$_}->{displayorder} }->{$_} = 1;
}
foreach my $display ( sort {$a<=>$b;} keys %{ $pos } ){
    foreach ( sort {$b<=>$a;} keys %{ $disp->{$display} } ){
        print $ref->{$_};
    }
}

でも、なんかダサい(死語)
並べかえたい、というのはよくあることなのに、こんな書き方してしまうと、バリエーションの数だけ同じようなことを書かなきゃいけないじゃん。…うううむ。

とはいえ、忘れないうちにメモっておこう。

»電子書籍制作代行についてはこちら

amazonで遊ぶ

2008/6/2 [22:11:25] (月) 天気

もしかすると体調がおかしいのか。金曜の夜に澤乃井の原酒、シメイ、あたりをへらへら飲んでたら土曜は夕方までトイレにはりついて吐きまくる。だいたい土曜は月イチ恒例の内科で、朝は普通に医者にいって「大丈夫ですね」と聴診器を当てられて帰ってきたのだ。気分が悪くなったのはその後、昼前あたりから。もう薮疑惑。

どうやら気持ちも切れかけの悪寒。うーむ、いや、おもしろくないことばかり。青空所属に帰ることを真剣に考える。
なもんで、ひたすら現実逃避に、日曜はlolipopでamazon ECS4.0のデータをいじるスクリプトをごにょごにょ。規約を読むと、AWSの登録IDはメールアドレスに対してひとつ、てことなんで、lolipopのメールアドレスで新たにひとつ取得。稼働中の読書snsに影響したくないし。

気合入れて調べるとチュートリアルもあって、パラメータもだいたい見当がつけられる。読書snsでは最低限のデータのしか使ってないんで考えることは少ないんだけど、用意されてるものをみると組み合わせが多いんで、ちょっと面倒、かな。
規約によると、価格などのデータは常に最新のものを使う必要がある。キャッシュしても一時間。
lolipopでmysqlにamazonから取得したデータを一時保存して、アクセスがあったらデータ取得時間をまずチェック。一時間以上前のだったらも持ってるデータを破棄して改めてamazonにデータ取得しにいく。
て、たかだかこれだけのことにハマる。mysqlのtimestampがよくわからず…。さんざん検索しても

current_timestamp-取得した時刻(timestamp型)> '1 hours'

てな、postgresqlでさくっとわかりやすい計算方法がでてこない。
このクソ野郎が低能がと、ひととおり罵って、perlのtimelocalで計算させることにした。…なんでやねん。
ついでに、ウチのポンコツサーバーから一時間毎にアクセスするようにしたのでアマゾン一時間ルールは大丈夫。
これで、アマゾンへのリンクをつければ手抜きお手軽アフィリエイトサイトのいっちょあがり。なんだけど、それじゃつまらないんで、リモートショッピングカートをつけてから公開してみよう、と。

扱うブツとしては。手元のデータも活用できるんで、まずはハードボイルド系ミステリを中心に品揃え。自分の好きな本だけが並ぶ、ってだけで俄然おもしろくなってきたから単純な性格だ。
とはいえ、読書snsのリニューアルが止まったんじゃ話にならんので、サイトはあっさりしあげよう。このために改めて画像を作ったりせず、手間はかけない方向で。

一応タグづけはそれなりにやっておいて、サイトができたらgoogleさまに登録ぐらいはやってみる、か。
ちなみに。アフィリエイトサイトで、まともな収入があるところなんて聞いたことがない。アフィリエイトで毎月ン万円、なんて本がにょきにょき出てる時点で、万馬券連発の馬券必勝本と同じですな。

しっかし、ほんと、なんだか、いろいろ調子悪いなあ。

»電子書籍制作代行についてはこちら

台風一家かな

2008/5/21 [00:49:52] (水) 天気

今日は、突然の台風に驚きつつ、タオルや替えの靴下をカバンにいれて仕事に。駅に向かう途中、突風で傘を折られてまたびっくりだった。

ここんとこずーっとかかりっきりの、あっちこっちのサイトリニューアル。ウチのポンコツサーバーの方はまだまだこれから。Primeパソコンを予備兼開発用に確保できたというの時間がまるで取れず。数日徹夜覚悟で集中しないとだめかもしれん。
で、完全にダメなのが仕事の方。こう何度も完成目前でダメ出しされたんじゃやってられん。援軍を呼んでおいて難癖をつけて、ってのも見え見えで、一気にやる気を奪われてしまう。

などと、ほぼ一日中起きてる間は、htmlにcssにphpにmysqlにperlにpostgresqlにjavascript三昧。それ自体はそれなりに面白くて好きだったりする。
特に、ポンコツサーバーの方は
「好きなことを好きなようにやって」それが「喜んでもらえてる」ようなので楽しい。クオリティやネタもいいものになっていこうってもんだゼ。

いろいろ、なんとかせにゃならんなあ。

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
名前:
飯田哲章
mail:
t2aki@mrh.biglobe.ne.jp
twitter:
t2akii

WEBサービス制作/電子書籍制作

検索
<<2020/2>>
      1
2345678
9101112131415
16171819202122
23242526272829

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版

iPhone電子書籍アプリ
小説同人誌Select iPhone電子書籍アプリ
『小説同人誌Select』

[8 Page]« »
1 2 3 4 5 6 7 8

TOTAL:2885

2020 (7)
1 (2)
2 (5)
2019 (17)
1 (3)
2 (4)
3 (2)
4 (2)
5 (1)
6 (1)
8 (1)
10 (1)
12 (2)
2018 (21)
1 (3)
2 (2)
3 (2)
4 (1)
5 (1)
6 (6)
8 (1)
9 (1)
10 (2)
12 (2)
2017 (32)
1 (2)
2 (1)
4 (2)
5 (1)
6 (6)
7 (3)
8 (5)
9 (3)
10 (2)
11 (2)
12 (5)
2016 (41)
1 (5)
2 (5)
3 (2)
4 (3)
5 (4)
6 (6)
7 (2)
8 (2)
9 (3)
10 (1)
11 (4)
12 (4)
2015 (99)
1 (11)
2 (12)
3 (9)
4 (6)
5 (8)
6 (8)
7 (3)
8 (5)
9 (16)
10 (6)
11 (1)
12 (14)
2014 (112)
1 (16)
2 (5)
3 (6)
4 (12)
5 (16)
6 (19)
7 (9)
8 (6)
9 (4)
10 (8)
11 (6)
12 (5)
2013 (145)
1 (24)
2 (15)
3 (18)
4 (23)
5 (14)
6 (11)
7 (7)
8 (11)
9 (5)
10 (4)
11 (6)
12 (7)
2012 (103)
1 (1)
2 (1)
3 (4)
4 (3)
5 (7)
6 (26)
7 (17)
8 (5)
9 (8)
10 (10)
11 (11)
12 (10)
2011 (54)
1 (4)
3 (7)
4 (4)
5 (14)
6 (6)
7 (3)
8 (3)
9 (1)
10 (4)
11 (2)
12 (6)
2010 (70)
1 (12)
2 (7)
3 (6)
4 (6)
5 (3)
6 (10)
7 (6)
8 (4)
9 (3)
10 (4)
11 (3)
12 (6)
2009 (144)
1 (15)
2 (12)
3 (12)
4 (6)
5 (15)
6 (6)
7 (10)
8 (9)
9 (17)
10 (12)
11 (14)
12 (16)
2008 (148)
1 (10)
2 (6)
3 (10)
4 (11)
5 (13)
6 (10)
7 (13)
8 (19)
9 (18)
10 (12)
11 (13)
12 (13)
2007 (106)
1 (7)
2 (5)
3 (3)
4 (7)
5 (5)
6 (9)
7 (8)
8 (13)
9 (18)
10 (11)
11 (8)
12 (12)
2006 (158)
1 (28)
2 (28)
3 (25)
4 (7)
5 (9)
6 (7)
7 (12)
8 (13)
9 (10)
10 (7)
11 (6)
12 (6)
2005 (350)
1 (31)
2 (26)
3 (26)
4 (27)
5 (29)
6 (30)
7 (32)
8 (30)
9 (30)
10 (32)
11 (29)
12 (28)
2004 (292)
1 (24)
2 (24)
3 (29)
4 (27)
5 (28)
6 (25)
7 (26)
8 (24)
9 (12)
10 (19)
11 (26)
12 (28)
2003 (318)
1 (22)
2 (25)
3 (21)
4 (28)
5 (28)
6 (28)
7 (28)
8 (29)
9 (26)
10 (29)
11 (28)
12 (26)
2002 (317)
1 (29)
2 (26)
3 (26)
4 (25)
5 (28)
6 (30)
7 (27)
8 (21)
9 (25)
10 (27)
11 (28)
12 (25)
2001 (277)
1 (17)
2 (21)
3 (23)
4 (20)
5 (31)
6 (18)
7 (26)
8 (25)
9 (29)
10 (19)
11 (24)
12 (24)
2000 (53)
6 (9)
7 (4)
8 (2)
9 (3)
10 (1)
11 (15)
12 (19)
1999 (3)
7 (1)
10 (2)
1998 (18)
9 (9)
10 (7)
11 (2)