Skip to main content.
30分前に顧客DB消しちゃったけど質問ある? : \(^o^)/オワタ速報
http://www.owasoku.com/archives/24435520.html


DB消えたWeb系のエンジニアには他人事とは思えないですね。

普通はバックアップとかを取っておくものですが、それでもDBが消えたとか言われると怖いです。

たとえエイプリルフールであっても「DB消えた」とかいう嘘をつかれたら
アナルの穴から手を突っ込んで奥のティースをガタガタ言わせたるレベル。



上記記事内に

DBについては、別のテーブルに似たようなデータがあったためそれを編集して流用。
あまり深いことは言えんが、データ流用ができたのもずさんな管理だったことが幸い?
普通は似たデータを複数箇所に置かんもんな

っていうのがありますが、これはよく分かりますね。
仕様変更を行う前の動作確認テストとしてテーブルをコピーしておいて、テストが終わったにもかかわらずコピーしたテーブルを残しておくとか。
その結果似たようなデータが残ったりするんですよね〜。
こないだMongoDBで作った短縮URLサービス「Ce2Be」でDBにインデックスを張り忘れてたので、PHPからインデックスを貼る方法のメモ。

詳細についてはここ参照。
インデックス - Docs-Japanese - 10gen Confluence
http://www.mongodb.org/pages/viewpage.action?pageId=5800049


やり方は簡単にまとめるとこんな感じ。
<?php
define('DB_NAME','hoge');
define('DB_TABLE_NAME','hoge_table');

$mongo = new Mongo(); // DB接続
$db = $mongo->selectDB(DB_NAME); // DB名選択
$cl = $db->selectCollection(DB_TABLE_NAME); // コレクション選択

// インデックスの追加
$cl->ensureIndex(array('url' => 1));
$cl->ensureIndex(array('date' => 1));
$cl->ensureIndex(array('code' => 1));

// インデックスの確認
var_dump($cl->getIndexInfo());

// インデックスを削除する場合
$cl->deleteIndex("url");
$cl->deleteIndex("date");
$cl->deleteIndex("code");
?>

短縮URLサービスなんで、URLと日付と短縮コードにそれぞれインデックスを貼ってます。
«Prev || 1 · | Next»