月別アーカイブ: 2009年5月

MySQLでの日付の計算

MySQLでの日付の計算について。

■ テーブル構成

テーブル名:t_test

フィールド:id      :ユニークなID

     :data     :データ

     :regist_date  :登録日時

     :update_date  :更新日時

例えば、上記テーブルにて、直近2週間に登録されたデータを取得したい場合、

select * from t_test where regist_date between date_add(current_date, interval -2 week) and current_date;

と、なります。

直近3日の場合は、

select * from t_test where regist_date between date_add(current_date, interval -3 day) and current_date;

と。

date_add()を使うと便利でいいですね。

でわ。

MySQLの詳細ログ出力設定について

例えば、会員登録サイトを構築して会員情報の検索が遅い時、

まずはSQLを調べますよね?

PHP等でO/Rマッパーを使っている場合、

実際にどのようなSQLが投げられているかがよくわからなかったりします。

そんな時は、ログを出力するようにしましょう。

設定は簡単です。

my.cnf に設定を追加するだけです。

# cd /etc

# vi my.cnf

[mysqld]

log=/var/log/mysqld_detail_access.log

これだけ。

設定追加後は、MySQLのプロセス再起動をしましょう。

これで、MySQLに実際に投げられているクエリがログに出力されます。

実際に見てみるとわかりますが、思った以上にゴリゴリとSQLが投げられています。

開発効率を考えてO/Rマッパーを使うのもいいですが、

素でSQLを書いた方がパフォーマンスチューニングしやすいかな、と思ったり。

でわ。

プログラマが悪いのか?

良くある事です。

「この部分、おかしいんだけど?」

いやいや、設計通りですよ。

もしおかしいのであれば、仕様バグです。

それをプログラマが悪いと言われると困りますわ。

まぁ、仕様バグだという事に気付かないSEもプログラマも悪いのですが・・・

それにしても、全てのバグの原因をシステムに押しつける人が多いかな、と。

特に営業や企画の人間。

難しいモノです。

でわ。

MySQLのトリガーの勉強

業務で、既存テーブルと新規テーブルとの整合性を取る必要が出てきたので、

MySQL5.0 から実装された、トリガーを使おうかと。

多少書き方は違えど、Oracleと似たり寄ったりかな、との認識。

データが2重管理になるので、出来れば既存か新規か、テーブルを寄せたかったのだが、

時既に遅し。。。orz

頑張ろう。

でわ。

Realforce91UBK購入

念願の Realforce91UBK を購入。

すばらしく使い易い。

キータッチが異常に軽いので、慣れるのがちょっと大変。

以前は、IBM USBトラベルキーボード ウルトラナビ付 を使用していたのだが、

PgUpとEnterキーがはまり込んでしまう状態になってしまったので。

まぁ、5年近く使ったので、減価償却は出来たかな、と。

ポインティングデバイスとタッチパッドが付いてるのが魅力だったんだよなぁ、IBMのキーボード。

マウスがなくても、そのキーボードひとつあれば良かったし、

サーバもそのキーボードひとつでいじれたし。

キーボードもそうなのだが、PC周辺機器は作業効率に関わるので、

なるべくこだわっていい物を使いたい。

周りの人は、

「キーボードとか、マウスとか、なんでそんなにお金かけるの?」

って言うけど、こればっかりは仕方ない。

さて、ゴリゴリキーボード使いますかね。

でわ。

メールに付与される緊急度について

メールを送信する際、Becky! であれば、

・重要度高

・重要度やや高

・普通

・重要度やや低

・重要度低

と、5段階あります。

それぞれ、メールのヘッダはどうなっているか、見てみましょう。

※抜粋です

・重要度高

MIME-Version: 1.0

X-Priority: 1

X-MSMail-Priority: High

Importance: High

Content-Type: text/plain; charset=”ISO-2022-JP”

Content-Transfer-Encoding: 7bit

X-Mailer: Becky! ver. 2.45.02 [ja]

Status:

・重要度やや高い

MIME-Version: 1.0

X-Priority: 2

X-MSMail-Priority: High

Importance: High

Content-Type: text/plain; charset=”ISO-2022-JP”

Content-Transfer-Encoding: 7bit

X-Mailer: Becky! ver. 2.45.02 [ja]

Status:

・普通

MIME-Version: 1.0

Content-Type: text/plain; charset=”ISO-2022-JP”

Content-Transfer-Encoding: 7bit

X-Mailer: Becky! ver. 2.45.02 [ja]

Status:

・重要度やや低

MIME-Version: 1.0

X-Priority: 4

X-MSMail-Priority: Low

Importance: Low

Content-Type: text/plain; charset=”ISO-2022-JP”

Content-Transfer-Encoding: 7bit

X-Mailer: Becky! ver. 2.45.02 [ja]

Status:

・重要度低

MIME-Version: 1.0

X-Priority: 5

X-MSMail-Priority: Low

Importance: Low

Content-Type: text/plain; charset=”ISO-2022-JP”

Content-Transfer-Encoding: 7bit

X-Mailer: Becky! ver. 2.45.02 [ja]

Status:

どうやら、

・X-Priority

・X-MSMail-Priority

・Importance

この3種類のヘッダが付与されるようです。

X-Priorityについては、1~5 の値が設定されるようですね。

その値によって、メーラ側で緊急度を判断しているようです。

X-MSMail-Priorityについては、どうやら、MS製品がこのヘッダを使うようです。

Importanceについては、Hight/Normal/Low の3種類のようです。

これがRFCでちゃんと決められてるヘッダかな???

たまにはこういったネタもいいかも。

でわ。