忍者ブログ

Syok'n Lab

WEB開発のあれこれ PHP,JAVA,Javascript,Ajax,Flex,Air,Linuxなどなど 最近雑記帳になりつつある・・・

※コメント、トラックバックは認証後表示されますのでご了承下さい

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

[MySQL] merge table

調べる機会があったのでメモ

merge table


読んで字の如く、テーブルを結合します。
肥大化したログテーブルとか、変更・削除はしないけど、残しておかないといけない売上情報を格納しているテーブルとかに使えます

使い方


マージ元(現在レコード数が多数で拡張したいテーブル)をtbl
マージ先(新たに追加するテーブル)をtbl_b
とします

・まず、tblをtbl_aというテーブルにリネームします。
	rename table tbl to tbl_a;
・次にtbl_aと同じ構造のテーブルtbl_bを作成します
	create table tbl_b (show create table tbl_a) 
        ※エラーが出る場合あshow create分までを実行して確認⇒実行で
・元のテーブルtblを作成。ここで注意すべきはpkeyは定義しない
	CREATE TABLE tbl (.....) TYPE=MERGE UNION=(tbl_a, tbl_b) INSERT_METHOD=LAST;

これでtblに対してinsertを行うとtbl_bにデータが格納されます。
見かけ上はtblに入るのでtblにSELECTを実行することでtbl_a,tbl_b両方のデータが参照できます。

tblをdrop⇒tbl_c追加⇒再度tblをcreate
で後から追加も可能です。

[自分へのtodo]
マージ元のテーブルを圧縮できたり、圧縮すると容量が何分の1かになるとか
後は圧縮すると読み出ししかできないとか・・
データの種類によるんだろうけど、レコードの物理削除・論理削除ってのはいつも悩みますねorz
運用の方針で決まるんでしょうが、開発側としては物理削除は避けたい傾向があるような気がします

拍手[1回]

PR

この記事へのコメント

Vodafone絵文字 i-mode絵文字 Ezweb絵文字
管理人のみ閲覧できます
 

この記事へのトラックバック

トラックバックURL

免責事項

当ブログに記載している情報に関しては、合法性、正確性、安全性等、いかなる保証もされません。従って、当ブログの情報を元に行う行為については自己責任でお願い致します。

カレンダー

08 2017/09 10
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

最新コメント

[02/10 幸一]
[12/08 yamamoto]
[07/23 Mr.ポテトヘッド]

最新トラックバック

ブログ内検索

Copyright ©  -- Syok'n Lab --  All Rights Reserved

Design by CriCri / Photo by Didi01 / Powered by [PR]

 / 忍者ブログ