INSERT ... ON DUPLICATE KEY UPDATE 構文ってどんな場合に使うの?
MySQL でデータを挿入する時に、重複するレコードが存在すれば UPDATE、無ければ INSERT みたいな事をしたい場合、REPLACE を使えばいいと思っていたのですが、色々と調べてみると「INSERT ... ON DUPLICATE KEY UPDATE 構文」なるものがあって、どちらかと言うとそちらの方が期待している動作に近いことが分かったので、色々と試してみました。
MySQL でデータを挿入する時に、重複するレコードが存在すれば UPDATE、無ければ INSERT みたいな事をしたい場合、REPLACE を使えばいいと思っていたのですが、色々と調べてみると「INSERT ... ON DUPLICATE KEY UPDATE 構文」なるものがあって、どちらかと言うとそちらの方が期待している動作に近いことが分かったので、色々と試してみました。
php で利用するセッション情報を MySQL に保存する方式に変更しようとしていたら、結構いろいろな設定があることに気が付いたので備忘録的な意味も込めてメモ。
今回のネタはだいたい以下の3つ。
// セッションで利用するクッキーの有効期間を1日に
ini_set("session.cookie_lifetime", 86400);
// 1日以上たったセッション情報を消去
ini_set("session.gc_maxlifetime", 86400);
// ガーベッジコレクションを毎回発生させる
ini_set('session.gc_probability', 100);