2008年5月20日火曜日

MySQL 大規模系の覚書

MySQLで大規模なサイトを作ろうとしたときの注意点などをつらつら書く

  1. マスター・スレーブ構成にする。(水平分散)

  2. クラスタリング化する。(垂直分散)

  3. データの集計など構文が決まってる処理はprocedureを使う。

  4. トリガを使って、無駄な集計をしないようにする。

  5. MySQL5.1からならFEDERATEDテーブルを使うと別DBのテーブルもJOINできる。

  6. MySQL5.0以上で、パーティショニングを使って一つのテーブルも物理的に分ける。

  7. データが多い場合、同じ構造のテーブルを作ることがある。そんなときはリネームして、テーブルをコピーすればよい。


とりあえず、あとでくわしくかけるとこは書こう。

⑦テーブルのリネームとコピー。

■create table テーブル名 as select * from コピーするテーブル名

・データのコピーもOKデータも一度にコピーされていい感じ。

・構造コピーNG

■create table テーブル名 LIKE コピーするテーブル名

・データコピーNG

・構造コピーOK

だから、データも構造もコピーしたい場合は

□create table テーブル名 LIKE コピーするテーブル名

□insert into テーブル名 select * from コピー元テーブル

の併せ技。

データのコピーは50万件でも1分もかからないくらい。だったと思う・・。

普通にinsertするよりも10倍以上早かったです。

0 件のコメント:

コメントを投稿