ロックテーブルを使用したMySQLInsertの書き込み

コンラッドデウェット

タスクはある種の価格表をアップロードすることなので、これを実装する前に簡単な質問をします。

一度に1000行、たとえば100,000行を挿入する場合は、http//dev.mysql.com/doc/refman/5.5/en/optimizing-myisam-bulk-data-loading.htmlをお勧めします。

「非常に多くの連続した挿入を行う場合、他のスレッドがテーブルにアクセスできるようにするために、時々(1,000行程度)ロックテーブルに続いてアンロックテーブルを実行できます。これでもパフォーマンスが向上します。」

明らかに、私がテーブルに「WRITE LOCK」を持っている間、あなたはまだテーブルを正しく読むことができますか?

私が尋ねる理由は次のとおりです:http//dev.mysql.com/doc/refman/5.0/en/lock-tables.htmlは言う:

ロックを保持しているセッションのみがテーブルにアクセスできます。ロックが解除されるまで、他のセッションはそれにアクセスできません

「アクセスできます」...まあ、もしそうなら、システム全体がフリーズするでしょう...私たちは単にそれを持っていることができません...これは実際の場合ですか、それとも「...いいえ他のセッション、ロックが解除されるまでテーブルに書き込むことができます。」?

最終的に私がやりたいのは、システムに影響を与えることなく、100,000行の単純なデータを挿入することです。利用した:

値に挿入(1,0.00)、(2,0.00)、... ...、(999,0.00)

ただし、これにより、何らかの理由で行が追加されないことがよくあります。

ヴァテフ

LOCK TABLES ... WRITE他のスレッドがない状態でテーブルをロックすると、そのテーブルの読み取り/書き込みが可能になります。

最善のアプローチは、複数行の挿入ステートメントを使用することです

INSERT INTO table (f1,f2,f3....) VALUES
(v1,v2,v3...),
(v1,v2,v3...),
...

おそらく、行をそれぞれ1〜10K行の複数のステートメントに分割する必要があります(max_packet_sizeやその他の設定によってはさらに大きくなる可能性があります)。

MyISAMは、テーブルの中央のどこかに空のスペースに挿入すると、テーブルをロックします。そのテーブルに対して挿入のみ(削除なし)を行う場合は、複数のスレッドを挿入して選択しても問題ありません。

テーブルに頻繁な削除/更新がある場合は、InnoDBへの切り替えを検討する必要があります。

「何らかの理由で行が追加されていない」については、ステートメント/コードのどこかにエラーがあることはほぼ間違いありません。ステートメントは行を挿入するか、エラーを返します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

「メタデータロック」は、「テーブルのロック[テーブル名]書き込み」を行ったときに発生しました。

分類Dev

nettyを使用したラージオブジェクトのノンブロッキング書き込み

分類Dev

カーネルで読み取り/書き込みロックを使用したデッドロック

分類Dev

JSON(Jquery)を使用して、ロールと権限(読み取り、書き込み、削除、書き込み特殊)のテーブルマトリックスを作成します

分類Dev

読み取り操作と書き込み操作の間でテーブルをロックする方法

分類Dev

Chromeでcss3書き込みモードを使用したテーブルセルの垂直テキスト

分類Dev

ダブルチェックロックを使用したメモリ読み取り可視性の順序と書き込み順序

分類Dev

SpringBootを使用したファイルプロパティの書き込み

分類Dev

phpを使用したファイルへのチェックボックスステータスの書き込みと読み取り

分類Dev

ローカルDataFlowジョブを介したBigQueryへの書き込み

分類Dev

最小限の書き込み使用アーカイブ目的でのSSD(NANDフラッシュ)の寿命:1回の書き込み、(ことわざまたはリテラル)ストレージクローゼットへの投入

分類Dev

RTTIを使用したジェネリック型のプロパティの読み取り/書き込みエラー

分類Dev

AWSVPCの変更組み込みのローカルルートテーブルとTerraformを使用したネットワークインターフェース

分類Dev

読み込み、デコード、resize_bilinear()、エンコード、テンソルフローを使用したjpeg画像の書き込みの実例?

分類Dev

ループを使用したFirestoreバッチ書き込み

分類Dev

ACR122Uリーダーを使用したmifare1KでのAPDU書き込みブロックコマンド

分類Dev

チャネル値のミューテックス書き込みロック

分類Dev

クリックしたデータテーブルの行の値をAngular2 +を使用して子コンポーネントのhtmlに書き込みます

分類Dev

永久にブロックされたチャネルへの書き込み

分類Dev

DynamoDBテーブルで失敗した条件付き書き込みはGSIの書き込み容量を消費しますか

分類Dev

PropertyHandler ShellExtensionを使用した読み取り/書き込みファイルのプロパティ

分類Dev

印刷マクロを使用した場合のTASMのstdoutへの書き込みとファイルへの書き込みの動作の違い

分類Dev

ファイルシステムはどのようにしてブロックをディスクにアトミックに書き込みますか?

分類Dev

文字列を使用したCurl書き込みコールバックは、ユーザーデータに対してbad_allocをスローします

分類Dev

シークおよび書き込みまたはオフセットを使用した書き込みのRandomAccessFileの予期しない動作

分類Dev

ループを使用したユーザー入力のテキストファイルへの書き込み

分類Dev

マルチプロセッシングを使用した同じファイルへの書き込み(ロックを回避)

分類Dev

メッセージの書き込みをブロックする方法は?

分類Dev

C ++ fstreamオブジェクトを使用したテキストファイルの読み取りと書き込みの問題

Related 関連記事

  1. 1

    「メタデータロック」は、「テーブルのロック[テーブル名]書き込み」を行ったときに発生しました。

  2. 2

    nettyを使用したラージオブジェクトのノンブロッキング書き込み

  3. 3

    カーネルで読み取り/書き込みロックを使用したデッドロック

  4. 4

    JSON(Jquery)を使用して、ロールと権限(読み取り、書き込み、削除、書き込み特殊)のテーブルマトリックスを作成します

  5. 5

    読み取り操作と書き込み操作の間でテーブルをロックする方法

  6. 6

    Chromeでcss3書き込みモードを使用したテーブルセルの垂直テキスト

  7. 7

    ダブルチェックロックを使用したメモリ読み取り可視性の順序と書き込み順序

  8. 8

    SpringBootを使用したファイルプロパティの書き込み

  9. 9

    phpを使用したファイルへのチェックボックスステータスの書き込みと読み取り

  10. 10

    ローカルDataFlowジョブを介したBigQueryへの書き込み

  11. 11

    最小限の書き込み使用アーカイブ目的でのSSD(NANDフラッシュ)の寿命:1回の書き込み、(ことわざまたはリテラル)ストレージクローゼットへの投入

  12. 12

    RTTIを使用したジェネリック型のプロパティの読み取り/書き込みエラー

  13. 13

    AWSVPCの変更組み込みのローカルルートテーブルとTerraformを使用したネットワークインターフェース

  14. 14

    読み込み、デコード、resize_bilinear()、エンコード、テンソルフローを使用したjpeg画像の書き込みの実例?

  15. 15

    ループを使用したFirestoreバッチ書き込み

  16. 16

    ACR122Uリーダーを使用したmifare1KでのAPDU書き込みブロックコマンド

  17. 17

    チャネル値のミューテックス書き込みロック

  18. 18

    クリックしたデータテーブルの行の値をAngular2 +を使用して子コンポーネントのhtmlに書き込みます

  19. 19

    永久にブロックされたチャネルへの書き込み

  20. 20

    DynamoDBテーブルで失敗した条件付き書き込みはGSIの書き込み容量を消費しますか

  21. 21

    PropertyHandler ShellExtensionを使用した読み取り/書き込みファイルのプロパティ

  22. 22

    印刷マクロを使用した場合のTASMのstdoutへの書き込みとファイルへの書き込みの動作の違い

  23. 23

    ファイルシステムはどのようにしてブロックをディスクにアトミックに書き込みますか?

  24. 24

    文字列を使用したCurl書き込みコールバックは、ユーザーデータに対してbad_allocをスローします

  25. 25

    シークおよび書き込みまたはオフセットを使用した書き込みのRandomAccessFileの予期しない動作

  26. 26

    ループを使用したユーザー入力のテキストファイルへの書き込み

  27. 27

    マルチプロセッシングを使用した同じファイルへの書き込み(ロックを回避)

  28. 28

    メッセージの書き込みをブロックする方法は?

  29. 29

    C ++ fstreamオブジェクトを使用したテキストファイルの読み取りと書き込みの問題

ホットタグ

アーカイブ