人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLについての質問です。

<テーブル構成>のテーブルBを、phpMyAdminで「修復」しました。
1時間くらい処理中になっています。

(1)これほど時間はかかるのでしょうか。

(2)そもそも、マージされているテーブル(B,C)を「修復」したり「最適化」するのは問題ないのでしょうか。

(3)テーブルBは稼働中で、データの出入りがあります。「修復」したり「最適化」するのは問題ないのでしょうか。


<テーブル構成>
------------------------------------
マージテーブルA
テーブルB・・・100万件のデータ
テーブルC・・・100万件のデータ
------------------------------------
※マージテーブルAは、テーブルB,Cをマージしています。
※インデックスはそれなりにあります。

●質問者: webuser
●カテゴリ:ウェブ制作
✍キーワード:MySQL phpMyAdmin インデックス データ マージ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● b-wind
●60ポイント

MySQL :: MySQL 5.1 リファレンスマニュアル :: 13.6 MERGE ストレージエンジン

MERGE テーブルと言うことはテーブルB・Cは MyISAM 形式と考えて良いのか?

情報がだいぶ不足している。


(1)これほど時間はかかるのでしょうか。

サーバースペックもデータ量も分からない状態では答えようがない。

かかることもあるし、かからないこともある。


(2)そもそも、マージされているテーブル(B,C)を「修復」したり「最適化」するのは問題ないのでしょうか。

マージされているかどうかには関係がない。テーブルB,Cは独立した MyISAM テーブルとして存在し、

通常とは別のアクセス手段を用意しただけだから。

ただ、稼働中のデータベースに関してそういったメンテナンス系操作を行うのはパフォーマンス上のペナルティは大きい。


(3)テーブルBは稼働中で、データの出入りがあります。「修復」したり「最適化」するのは問題ないのでしょうか。

なにをもって「問題」とするかによる。

SQL 構文としての REPAIR TABLE を実施する事によってDBが壊れるなどの障害は基本的には発生しないはず。

ただ、前出の通りパフォーマンスには大きな影響を与えるので稼働中に行うのは好ましいことではない。


また、MyISAM の特性上本当に「修復」が必要な状態であれば、そもそもその時点で使用不能になっている。

MySQL :: MySQL 5.1 リファレンスマニュアル :: 13.4.1 MyISAM スタートアップオプション

◎質問者からの返答

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ