SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント
参考URL パーティショニングとは パーティショニングの種類 RANGE パーティショニング このタイプのパーティショニングは、指定された範囲に含まれるカラム値に基づいて、行をパーティションに割り当てます。 LIST パーティショニング RANGE によるパーティショニングに似ていますが、別個の値のセットのいずれかに一致するカラムに基づいて、パーティションが選択されます。 HASH パーティショニング このタイプのパーティショニングでは、テーブルに挿入される行内のカラム値を操作するユーザー定義式によって返される値に基づいて、パーティションが選択されます。関数は、負ではない整数値を返すMySQL の有効な式で構成できます。このタイプを拡張したLINEAR HASH も使用できます。 KEY パーティショニング このタイプのパーティショニングは、HASH によるパーティショニングに似ていま

CREATE TABLE `presents` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `user_id` int(10) unsigned NOT NULL, `present_id` int(10) unsigned DEFAULT NULL, `created_at` datetime NOT NULL, PRIMARY KEY (`id`,`created_at`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8 PARTITION BY RANGE (TO_DAYS(created_at)) (PARTITION p201402 VALUES LESS THAN (735658) ENGINE = InnoDB, -- 省略 PARTITION p201409 VALUES LESS THAN

まずこんなテーブルを作るとします。ここに毎月10万件以上のレコードが入ってくる予定です。 1レコードが57byteなので、月に5.7Mbyte、プライマリーキーを入れると60Mbyteくらいが入ってきます。 年間にすると720Mbyteなので、まぁデータ量的には余裕だと思うのですが、 100万レコードを超えるとレスポンスが鈍化するという印象があります。 というわけで、MySQLにあるパーティショニング機能を使い、データを振り分けたいと思います。 【参考】DB設計時のサイズ見積もり | よねのはてな テーブル作成 注意する点として、パーティショニングのキーにしたいカラムを、プライマリーキーに含める必要があるようです。 なので、オートインクリメントのカラムがあるテーブルだと辛い。構成を考えなおした方がいいかも。CREATE TABLE `list_rtx` ( `member_id` var

MySQLの負荷分散 2006-03-31 Fri そこで登場するのが,データベースを分割することによる負荷の分散である。mixiでは,2段階のレベルでデータベース分割を行った。 まずレベル1では,テーブルの種類によってデータベースを分けた。どのテーブルがどのデータベースにあるかを示すパーティション・マップを用意する。利点は古いデータベースから新しいデータベースへの移行が容易なことだ。欠点はJOINができないこと。MySQL 5にはこの問題を解決するための「FEDERATED table」という機能があるが,当時はまだMySQL 5は正式リリースされていなかった。そこで,SELECTを2回投げる,あるいはテーブルが小さければ複製する,といった方法で対応したという。 ミクシィのCTOが語る「mixiはいかにして増え続けるトラフィックに対処してきたか」 ここ一年で二つほどPHP+MyS
1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く