« 2008年7月 | トップページ | 2008年9月 »

2008年8月31日 (日)

333を超えるとパフォーマンスは落ちる

引き続きMySQLの話。

100万件を超えるデータを処理するとどうしても時間がかかる。
ひとつのデータから複数のテーブルを作る。
それぞれの複数のテーブルから再びテーブルを作る。

こんなことを繰り返すとテーブルの数がどんどん増えてくる。

1秒でも速く処理するために、いろいろクエリーを工夫する。
ところが、ある時、いきなりパフォーマンスが落ちた。

ん?おかしい。

で、マニュアルを入念に読むと、そこにはテーブルが333個を超えると
パフォーマンスが急激に落ちると書いてある。

数えてみたらテーブル数は340個にもなっていた。
データベース越しにクエリーを記述するのがおっくうになっていたため、
同じデータベースにたくさんのテーブルを作成してしまっていたのだ。

まさかね。こんなに増えるとは...。(^_^;)

それに加えて、次も反省点。

オラクルからMySQLへのDBを移送した際、フィールドタイプがデシマルになっていた。
当初は、なんにも気にしなかった。

ところがである。

処理時間があまりに遅いのでテーブルの容量を見たら、12ギガもある!?

え?

よくよく調べてみると、デシマルというフィールドタイプは、MySQLではアンパックの浮動小数点!
0でさえ、浮動小数点の情報を保持しているから容量は増える。

これじゃあ、フロートタイプの浮動小数点のほうがマシ。(パックしてるからね。)

実際に小数点以下のデータはない。
だからInt形式に変換してみた。

すると12ギガのデータが2ギガに激減。
当然、処理速度はめっちゃ速くなった。

今回の反省点。
オラクルからMySQLへの変換時にはフィールドタイプに注意すること。

2008年8月24日 (日)

SQLでゼロ除算を避ける方法

仕事柄、データベースではMySQLを使うことが多い。

データベースを使ってのWEBアプリの要請は多く、いろいろな表示に対応しなければならない。

中でも進捗状況などを表示する割合(%)の計算は頻繁にでてくる数値である。

%を計算するには、2つの方法があって、アプリケーション側で計算する方法とデータベースで計算する方法がある。

%の計算は、数値Aを数値Bで割って、100をかける。

ところが、数値Bが0の時は、エラーとなってしまう。
だから、0の時には計算しないようにアプリケーション側で工夫することが多い。

でも、データベースでもエラーを避けながらこの計算ができることを覚えたので記録。

NULLIF関数を使うのである。

AとBが違う場合、NULLIF(A,B)はAを返す。AとBが等しい場合はNULLが返る。

これを利用して次のようにSQLを記述するとよい。

SELECT hoge, 100.0 * A /NULLIF(B, 0) FROM table ;

もし、Bがゼロなら、NULLIF(B, 0)はNULLを返す。

SQLでは、数値をNULLで割るとNULLが返されるのでエラーは発生しない。

ちなみにこのNULLIF関数は。ANSI標準のSQL関数。
すべての主要ベンダーがサポートする。

覚えておいて損はない。

2008年8月19日 (火)

国内化粧品の消費は減速

先日の資生堂の発表した4-6月の連結決算では、前期比9%減の962億円の売上だったそうだ。
消費が減速してるとか。

でも、海外の化粧品は好調だ。

国内の化粧品の売上高を見ると、「カウンセリング化粧品」と対面販売などで販売されるの化粧品は、10%減。
「セルフ化粧品」と呼ばれる化粧品は12%減。

大手メーカーは、セルフ化粧品の拡販を狙ってきているといわれているが、
消費減速が大きく響いたとの見方が多い。

なので、普通に化粧品の売上げも減っていて当然かもしれない。

消費に敏感なのは賢い主婦か。



2008年8月12日 (火)

注文来る

ネットショップでようやく1件の受注があった。

よかった。プロ野球で、1軍になって初めて安打を記録した新人みたいな気持ち。

なんどやっても、受注がとれるかどうかが一番心配するところだ。

事前に説明していたとおり、1%の購入率。

いままでいろいろなサイトに関わってきたが、やはり購入する人の率は1%程度だ。

ユニークユーザー100人につき1人の購入。

これが専門サイトとなるとちょっと違う。もう少し高い。

同じような広告。同じようなリンク。

そこで、売れ行きも微妙に違う。

なにが原因?どうしたらもっと売れる?

少しずつわかってきたことを書き留めている。

数年前と今とでは、また違う。

ノウハウも変化する。

2008年8月11日 (月)

webアプリケーションのメンテナンス

今日は、特別にWEBアプリケーションについてのサポート勉強会。

ある企業が特注したアプリケーションについて、今後の展開を問われる。

オーナーはまったくプログラミングの知識がない。

自分でメンテナンスしたいんだが。

費用はともかく、ベンダーに依頼する手間が惜しい。

状況はいろいろあるけれども、自分のしたいことをしたいようにするには知識も必要。

トレードオフにある関係を理解したいらしい。

ほぼ、3時間半は私が話をしっぱなし。

私のしていることは指導。

次回は、画像処理ソフトを使って、実際の商品画像を加工する。

それにしても暑い。

2008年8月 9日 (土)

名刺のリニューアル

長い間、同じ名刺を使用してきた。

シンプルを心がけているので長く使えるようにと自分でデザインしたものだ。

ところが、ある時、名刺交換していて気がついた。

当然、自分の説明をする。自分が何者で、どんなことが得意としているのか。

そのときは相手も聞いてくれている。

しかしだ。人間の記憶なんて一日もすれば半分忘れるという。

私もそう。

だから、名刺に記載することにした。

あんまり、ごてごて書くのは好きじゃないので出来るだけシンプルにした。

初めて会う人からは、私を値踏みしている感じが受け取れる。

名刺に自分の資格をありったけ書くという方法もあるけど、世間はそんなことは

あまり評価しない。ま、1秒ほどかな。

それよりも実績を重視する人が多い。実績は信用の裏返し。

だから、名刺の裏に今までの仕事をリストアップすることにした。

今はそれほど多くないけど、事実は事実。

なによりもわかりやすい。

1時間かけて作り直した。そして、今までの在庫はすべて廃棄処分。

とりあえず、今年はこれでいく。

デザインの練習

久しぶりにロゴデザインの練習をした。

PhotoShopは初心者同然なので、そこそこ使えるように練習している。

言葉で表せない内容もイメージなら伝えることができる。

でも、作り手のイメージと受け取るイメージが一致しているとは限らない。

いままではフォントなども意識しなかったが、最近は少しは意識するようになった。

いろいろ見比べると、イメージがガラリと変わってしまうことに気がついた。

小さなロゴでも作り始めると数時間がすぐに経ってしまう。

練習を重ねて、あと98個作って100個にしよう。

2008年8月 6日 (水)

肝斑

肝斑と書いてカンパンと読む。

シミにもいろいろあるのだそうだが、この肝斑というのが日本人に多いとか。
皮膚の色が浅黒い人ほどできやすく、30~40歳以上の女性たちに多く見られる。

そう先日の新商品が期待する「シミ」である。
私自身は、全く興味もないし知識もないのだが、いずれこの商品をネットで宣伝することになる。

だから、隙を見つけて商品の研究をしているところ。

この新商品が期待するシミは「老人性肝斑」。
「老人性」とあるから、お年を召した方が対象かと思うとさにあらん。
30代の女性をターゲットとしている。

「老人性」とあるから誤解を招く。
老化が原因の肝斑である。30代から発症するらしい。

調べたところによると、
両頬や額、下顎、上口唇(鼻の下)に左右対称性にある、地図のようにべったりとして見える(あるいは、蝶々のようにも見える)のが特徴だとか。

女性ホルモンに関係していると言われ、発症の原因として紫外線が重要であると考えられている。

そういえば、男にはそんなシミがない。ような気がする。
というか、気にしていない。

しかし、シミというのはとても気になるものらしい。

世の中には、シミとりの美容液が何種類も売ってるのはそのせい?

もうしばらく、研究は続く。

2008年8月 5日 (火)

堺は自転車の町

診断士の仲間と飲む。

そこでの話。

堺は自転車で有名なんだとか。
知らなかった。

刃物を叩いて伸ばすと筒状になる。
それが、鉄砲の技術になって、自転車のスポークとか本体を制作する技術になる。

へえー。そうなんだ。

自転車ではシマノとか有名なメーカーが堺にある。

技術って、イマジネーションでどんどん進化するんだろうな。

どんな技術も生かせるフィールドが必ずある。

そんなことを思いながら楽しく話を聞いた。

« 2008年7月 | トップページ | 2008年9月 »