MySQLでカラムの時刻を9時間前に変更するSQL。
update events set created = (created - interval 9 hour);
createdは作成時刻を表すカラム名。
intervalとか、hourという表記とか、便利なもんだ。
MySQLでカラムの時刻を9時間前に変更するSQL。
update events set created = (created - interval 9 hour);
createdは作成時刻を表すカラム名。
intervalとか、hourという表記とか、便利なもんだ。
サーバーが不調だ。 サーバーのせいではなく、設定が悪いことはわかってる。
MySQLの最大接続数を減らしてみた。 初期値は100なんだけど、10まで下げてみた。
/etc/my.cnf
[mysqld] ... key_buffer = 64M ... max_connections=10これでどうだ!? 心なしか、表示が少し早くなった気がするんだけど、もし、この感覚が正しいとしたら余計なコネクションがあったってこと?
今のところ、 mysqladmin -u <USER> -p extended-status|grep Max
| Max_used_connections | 3 |接続数は3つらしい...と思って、今確認したら5に増えてた。
パフォーマンス向上のために最大接続数を増やす事例の方が多いような気もするが、限られたリソース内だと減らすしか無いな。 また様子見です。
今更だが、wwwsqldesignerがかなり便利。
ちょっと前にMySQL Workbenchを入れて使ってみたんだけど、定義する項目が増えると使いづらいインターフェース。 機能はもっと少なくていいから、お手軽なのがいいなぁ〜と思って見つけたのがこれ。 確か、だいぶ前にデモサイトを触ってみたんだけど、レスポンスがいまいちだった気がする。 それをローカルに入れたらサクサク動く(笑)
インストールはzipファイルを展開するだけ。 Apacheが起動してて、PHPが使えることが前提だけど。 ファイルはサーバーに保存出来るので、アクセスして読み込めばすぐに使える。
機能がそれほど多くないこともあり、日本語化しなくても問題なく使えるけど、お手軽だったのでやってみた。
[J] WWW SQL Designer 2.1.1 の日本語化 - Jamz (Tech)
http://jamz.jp/tech/2008/07/localize-www-sql-designer.htmlここで配布してるja.xmlを ".../wwwsqldesigner-2.3.2/locale" に置く。 .../wwwsqldesigner-2.3.2/js/config.jsを編集。
AVAILABLE_LOCALES:["en","fr","de","cs","pl","pt_BR","es", "ru", "ja"], DEFAULT_LOCALE:"ja",これだけ。
ついでに、保存の設定もここで行っておくと便利。
DEFAULT_BACKEND:["php-file"],ここは保存したい形式によって変えればいいんだけど、ファイルが一番お手軽そう。 ちなみに、ファイルは ".../wwwsqldesigner-2.3.2/backend/php-file/data" に保存されます。 保存した名前を忘れたらここを参照すればOK!
休み中にやろうとしていた、本の整理と発送、完了!
コードを書こうと思っていたけど、こちらは全然出来ず😔 ふと思いついたサービスはマインドマップとして簡単には書いた。 独立3サービスなんだけど、1サービス+2サービスとも見えるような感じ。 2サービスのところはたぶん結構いくらでも膨らませられる。
あとはDBの扱い方について。 三層(UI+ロジック+データ)にした場合、データのところはデータだけ提供すればいいんじゃないか?と思ったが、最近のWebサイトって結局こんな構造なんだなぁ〜と思った。 データ層でデータを取り扱ったとして、どうやってロジック層に渡すか(取りに行くか)?ってことを考えると、ロジック層の一部がDAOなんかでデータ層にアクセスしてる。 このDAO層がこっち(ロジック層)にあるか、データ層にあるかの違いなだけなんじゃないか?と。 こっち側にあるからこそ、オブジェクトとして扱いたくてO/Rマッピングをしている。 もし、向こう側にあるとしたらロジック層はどのようにアクセスをして、どういう形式で取得するのか?
この時点でふと思い出したのがProtocolBuffersの存在。 この方法はありなんじゃないか?と思いつつも、データ層でDBをどう扱うか?というところがまとまってない。 iBATIS風(あくまでも"風"の域)な思索もありだと思った。
最近はDBの扱い方(O/Rマッピング)でインピーダンスミスマッチという単語を見かけることが多い。 (と言うか、それ関連を調べているから見かけることが多くなったのかもしれない)
[雑記] O/R インピーダンスミスマッチ(LINQ to SQL の概念説明) (C# によるプログラミング入門)
http://ufcpp.net/study/csharp/sp3_ormismatch.htmlこれを読んでもインピーダンスミスマッチが少なくなってるような気はしない。 結局はコードの書き方を変えただけのような気がする。 新しい方法を編み出し、実装することは難しいとは思うんだけど、まだ途中経過という感じがする。 O/RマッピングがXMLの定義から、CoCになって、LINQになって・・・みたいな流れ。思想が違うもの同士、どこまで歩み寄れるか・・・。 今は言語がDB(SQL)に歩み寄ってるが、SQLが変化して・・・という流れはないのだろうか? SQLじゃなくても、DBの構造自体変えちゃうとか。
何かいい方法は無いものだろうか。
mixi Engineers’ Blog » DBMによるテーブルデータベース
http://alpha.mixi.co.jp/blog/?p=290これはDBを実装しているようだけど、漠然と考えているのは一般的なRDBを活用する方法。 エンジニアには使いやすく、エンジニアではないけどシステムに関わる人にはわかりやすいもの(データ格納と言う意味ではDB)が欲しい。
Seasar2 - S2JDBC - S2JDBCとは - 流れるようなインターフェースと脱CoC
http://s2container.seasar.org/2.4/ja/s2jdbc_abstract.html#流れるようなインターフェースと脱CoCこれには共感。でも、RDBを使うのではなく、便利なオブジェクトDBが欲しい。 RDBでもいいけど、もっと柔軟性が欲しい。 試行錯誤の段階で、自由に入れたり出したり出来る感じの(笑)
自由に入れたり出したりってことで、オブジェクトDB。 db4objects 日本語ポータル
http://www.db4o.com/japan/LINQもサポートし始めたらしいし、速いらしい。blob型(H2 databaseなので正確にはBINARY型)でDBに文字列や数字を入れると、人が読める形式で表示されない。 DB格納時にbyte配列にしてるので、なにか処理をしない限り当たり前なんだけど(^^; Java+H2 databaseのお話でした。