2012-01-05 25 views
3

MySQLデータベースを使用していて、2つのMyISAMテーブルがあります。1. 1,000万レコード以上のマスタ(inf_article_details)テーブル2.約50,000以上の一時的な(temp_inf_article_details)記録。これらのテーブルの構造は同じで、主キーとして1つの列(データ型としてBIGINT)しかありません。データは、さまざまなデータソースプロバイダの一時テーブルに定期的に格納され、私は一時テーブルからマスタテーブルにデータをプッシュするスケジュールされたジョブを持っています。MyISAMのINSERT/UPDATEクエリのパフォーマンスを向上させる方法

FYI、マスターテーブルは以下のようにマスターテーブル20のパーティション

インデックス情報(inf_articles_details)にキーに区画されている:inf_articles_detailsから

ショーインデックス。 enter image description here

以下のように一時テーブルのインデックス情報(temp_inf_articles_details):

temp_inf_articles_detailsからショーのインデックス; enter image description here

以下のようにマスターテーブルの結果を説明:

を説明します。

は、以下のように一時テーブルの結果を説明inf_articles_details enter image description here

SELECT * FROM説明select * from temp_i

inf_articles_details
ard_ean_code BIGINT(20)符号なしNULL NOT、
ard_provider_reference BIGINTをCREATE nf_articles_details enter image description here

マスターテーブル(inf_articles_details)構造(70+列は合計周りに存在します) (20)符号なしDEFAULT NULL、
ard_reference varchar(20)NOT NULL、
ard_modified_date日時のDEFAULT NULL、
PRIMARY KEY(ard_ean_code)、
KEY idx_ard_modified_dateard_modified_date
)ENGINE = MyISAMテーブルのデフォルトの文字セット= UTF8/*!構造KEY()PARTITIONS 20 */

一時テーブル(temp_inf_articles_details)BY 50100パーティションがある(70+カラムは約ある)

符号なし表temp_inf_articles_details
tard_ean_code BIGINT(20)NOT CREATE NULL、
tard_provider_reference BIGINT(20)符号なしのDEFAULT NULL、
tard_status tinyint型(3)符号なしのNOT NULL DEFAULTを '0'、
PRIMARY KEY(tard_ean_code)、
tard_statusidx_status
KEY)ENGINE = MyISAMテーブルのデフォルトの文字セット= utf8を

データ更新作業の一環として、私たちは "ard_ean_code & tard_ean_code" と更新時にこれら2つのテーブルを結合しますテンポラリ・テーブルの値を持つマスタ・テーブルの既存のローを作成し、テンポラリ・テーブルからマスタに新しいローを挿入します。しかし、このデータ更新は、一時テーブルからマスターテーブルへのデータの挿入/更新に時間がかかりすぎています。

パフォーマンスを向上させるために必要な調整はありますか?

ありがとうございました。

+0

に役立ちます願っています。 1行ずつ(一度に全部)行を読んだり、個々の挿入(複数の挿入に対して)を好む場合、またはクライアントの言語からの操作を実行すると、スローダウンが発生する可能性があります。 –

+0

申し訳ありません私の最初の投稿に詳細情報を含めないためです。私は必要な情報を含めました。 – Niranjan

答えて

1

MyISAMは同時挿入をサポートしています。データファイルの途中に空きブロックがない場合、他のスレッドがテーブルから読み込んでいるときに新しい行をINSERTすることができます。

参考:Bulk Data for MyISAM Tables

Concurent Inserts

は、この質問には、適切な答えを得るには余りにも一般的なものであり、何らかの方法

関連する問題