タイトルの件について、分かる方おりましたらどなたかご教授ください。
[DBサーバ]
Linux CentOS 6.4
CPU Xeon core4
SSD 250GB
RAM 32GB
バージョン情報
MySQL 5.5
tomcat 6
JDK 6
会員データをCSVから大量にUSERテーブルへINSERTする処理を行っています。
また、それに関連するデータも同時にINSERTをします。 (USER_ID を持っている SERVICE_POINTテーブルやADDRESSテーブル)
処理の流れとしては以下となります。
(1) 会員情報の入ったCSVファイルをサーバへアップロード
(2) 1でアップロードしたCSVファイルを○○○○件毎に一時ファイルに切り分ける
~~ ここからバックグラウンドで実行 ~~
(3) 2で切り分けたファイルをループで回しながら、メアドの重複やフォーマットエラーなどを判定する
(4) 3でエラーがあれば即座にERRORSテーブルにエラー詳細をINSERTし、コミット&continue;
(5) 3でエラーがなければUSERテーブル・SERVICE_POINTテーブル・ADDRESSテーブルへINSERT処理
(6) その他関連するテーブルへUPDATE処理
(7) 3に戻る
ストレージエンジンは全てInnoDBです。
my.cnfのInnoDBの設定は以下の通りです。
innodb-buffer-pool-size = 24G
innodb-log-buffer-size = 8M
innodb-log-file-size = 1024M
innodb_log_files_in_group = 3
innodb_fast_shutdown = 0
innodb_data_file_path = ibdata1:10M:autoextend
innodb_file_io_threads = 4
innodb_change_buffering = all
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
innodb_max_dirty_pages_pct = 90
innodb_flush_method = O_DIRECT
innodb_lock_wait_timeout = 120
innodb_additional_mem_pool_size = 128M
innodb_file_format = Barracuda
innodb_file_per_table = 1
なお、ERRORSテーブルのINSERTは非常に速いです。
会員数が全くない状態だとスムーズに登録されていくのですが (1秒に15件程度)
テーブルが肥大化して20万件を超えると1秒に1件ほどしかINSERTされません。
この速度を少しでも速くしたいなと思っています。
1件ずつコミットしているのには理由があります。
ただ、1000件ずつコミットしても速度はほぼ変わりませんでした。
こういう場合、やはりパーティショニングを検討しなければならないでしょうか。
よろしければどなたかご教授ください。
以上、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- MySQL 下の画像はSQLの4大命令の性質をまとめたものであるらしいです UPDATE INSERT DELE 1 2023/06/07 15:36
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
mysqlがインストールされている...
-
エラー 1068 (42000): 複数の主...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLで漢字名称を都道府県や市区...
-
〜のような結果を出すためのSQL...
-
SQLです!!教えてください。あ...
-
SQLです!!教えてください。あ...
-
SQLです!!教えてください。
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年...
-
SQLを作ったのですがうまくいき...
-
「総降水量が100mm以上になる...
-
SQL構文です 画像のようにした...
-
SELECT * FROM `生徒名簿` INNE...
-
テーブル:生徒名簿 生徒名簿の...
-
SQLです!!教えてください。
-
SQLです下記の問合せを行うクエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ロックテーブルサイズ超えのエ...
-
MySQL8にバージョンアップした...
-
SELECT実行中にINSERTしたい
-
mysqlでCSVインポートでトラン...
-
AUTO_INCREMENTの抜け番
-
Accessでデータシートに同じデ...
-
SELECT 文の NULL列は?
-
L2SWはARPテーブルを持っている?
-
テーブル名をカラムとして取得...
-
「テーブルに座って……」という...
-
SQL、2つのテーブルで条件一致...
-
一つ前に戻るには…
-
update文で改行を入れる
-
ROWNUMでUPDATEをしたいのです...
-
SQL*LoaderでCSVから指定した列...
-
まるいテーブル 円い 丸い 漢字...
-
男性と2人で飲食店に行きテーブ...
-
テーブルに存在しない列をselec...
-
sqlplusで表示が変なので、出力...
-
外部キーだけのテーブル(主キ...
おすすめ情報