だるろぐ

だるいぶろぐです

mysql

date()が無ければleft()を使えばいいじゃない

こんなテーブルに mysql> select hoge_datetime from hoge_log limit 1; +---------------------+ | hoge_datetime | +---------------------+ | 2012-07-01 10:00:00 | +---------------------+mysql> select date(hoge_datetime) from hoge_log limit 1;こ…

レプリケーションフローチャート

mysql40dumpを使おう。 mysql40dump レプリケーション作成を簡単にする mysql40dump という mysqldump の wrapper を作った話 - blog.nomadscafe.jp 始まり。 DBMSはmysql? いいえ 知るか。帰れ はい 下へ mysqldのバージョンは4.0以上? いいえ(=3.x以下…

create table して ERROR 1005 (HY000): Can't create table '$DB_NAME.$TABLE_NAME' (errno: -1) と言われたら .ibd ファイルが何故か存在しているから消せばいい

タイトル読んでお疲れさまでした。以上。 メモ innodb_file_per_table の設定をしておくと、テーブルを作ると .ibd ファイルが作られる。 ref: http://nippondanji.blogspot.com/2009/01/innodb_16.html drop table すればこのファイルも消える。 テーブルを…

3000req / sec と戦う

ざっくり概要 ピークで3000req / sec 毎分コンテンツ更新要求 コンテンツ更新の際は他所からデータをapi経由で受け取る コンテンツ更新にはTheSchwartzを使用 なコンテンツを色々してきたログ。 尚、ここに書く技術は大半が周囲のギークな方々にサポートして…

log-binのデフォルト値を使わない

mysqlでレプリケーションするときは my.cnf の mysqld セクションに [mysqld] log-bin などと書いてバイナリログを吐く。 このように log-bin とだけ書いた場合、バイナリログの名前は5.1では HOSTNAME-bin.000001 のようなものになる。 --log-bin[=base_nam…

RDBMSにおけるテーブルとインデックスの構造とか

(追記:このエントリは自力ではありません) http://d.hatena.ne.jp/hirafoo/20110624/1308931556 で、ROW OPERATIONS Speedで、「indexが不適切だったりすると、増える。」と書いたけど、それはどんな場合か。 例えば、 id user_name の2つのカラムがある…

limit/offsetについて考える

LIMIT 20 OFFSET (:page - 1) * 20 みたいなクエリは :page に大きい値が入れれるように設計されてるとクエリに殺されるので、 WHERE key = :offset_for_next_page LIMIT 20 なクエリになるよう設計してほしい。 http://twitter.com/kamipo/status/563046010…

countした結果をsumしたいらしい

会社でそういう方が居た。要は超簡略化すると select sum(count(1)) from table;的な事がしたいらしい(だった気がする未確認)。 前やったなーと思いつつ記憶を掘り返して select case when id <> 0 then sum(id) else 0 end as result from guest;とレスし…

クエリの無駄とかチューニングとか

mysqlとかのRDBMSってノリと雰囲気と勢いで使ってるので つまりよく知らずに使ってます。 1件取得 例えばこんなスキーマから mysql> desc guest2site; +------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | De…

mysqlがCPU100%使っててload averageが常時1なのはFreeBSDではよくあること

とあるDBサーバで何となくtop打ったらload averageが常時1で、調べたらそんな状態が数ヶ月続いていたことに気付いた。俺 「くぁwせdrftgyふじこlp」 上司「BSDではよくあること」 どうもBSDではよくあることらしい。んで調べてみると http://dev.my…

InnoDB使用時はtruncateは実際にはdeleteが発行される

上司から聞いた事シリーズ。 タイトルだけで全てを言い終えるのはいつもの事。 mysqlでInnoDBエンジン使用時にtruncateコマンドを打っても、実際に発行されるのはdelete文。遅いです。 もしテーブルを参照する外部キー制約があれば、InnoDB テーブルに対して…

画像をDBに保存してmod_rewriteを利用していい感じに扱う

http://neta.ywcafe.net/000774.html これをやった。ここ見れば十分。 ソース一式 http://github.com/hirafoo/image_db 試す場合は DBIx::Class とかを入れる。他適宜入れる mysql用意する image_db ってデータベース作る config/create.sql を使ってテーブ…

重複した値を持つレコードを抽出しよう

videosテーブルがreserve_idってカラムを持っている。 このテーブルから、重複したreserve_idを持っているレコードを抽出したかった。 俺の場合。 select id,reserve_id from videos where reserve_id in (select reserve_id from videos group by reserve_i…