MySQL に 1,000 万件のレコードを素早く挿入する方法

MySQL に 1,000 万件のレコードを素早く挿入する方法

面接で「MySQL に 1,000 万件のレコードをすばやく挿入するにはどうすればよいか」という質問があると聞きました。

個人的に試してみたところ、10,000 データの挿入に 0.9 秒、100,000 データの挿入に 4.7 秒、1,000,000 データの挿入に約 58 秒かかりました。1,000,000 データの挿入では、ラップトップは 5 分ほど実行され、自動的に停止しました。私はとても興奮して、それについて考えていました。次のコードを使用しました。

-- データベース使用テストを入力します。
--すべてのテーブルを表示 show tables;
-- メジャーテーブルを作成します。create table majors(id int, major varchar(255));
-- 終了文字 $ を定義します
区切り文字「$」;
-- ストアド プロシージャを作成し、ストアド メソッドを定義します。create procedure batchInsert(in args int)
始める
i int をデフォルトで 1 と宣言します。
-- トランザクションを有効にします (重要! そうしないと、100 万件のデータの計算に数日かかります)
トランザクションを開始します。
i <= argsの場合
専攻(id,major)に値(i,concat("ソフトウェアエンジニアリング-",i))を挿入します。
i = i + 1 と設定します。
終了しながら;
専念;
終わり
$

-- データを生成する関数を呼び出します -- 最初に 100,000 件のレコードを生成し、$ を入力して Enter キーを押して実行します call batchInsert(100000);
$

10万個のデータを生成するのに4.44秒かかりました

ここに画像の説明を挿入

100 万個のデータを生成するのに 58.62 秒かかりました。これはほぼ 1 分です。

ここに画像の説明を挿入

1000 万個のデータを生成します。画面の前にいる大物たちが試すことができます。ハハ、Ctrl + C でプロセスを強制終了しました!

ここに画像の説明を挿入

要約する

これで、MySQL に 1000 万件のレコードをすばやくバッチ挿入する方法に関するこの記事は終了です。MySQL にデータをバッチ挿入する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL に大量のデータを挿入する 4 つの方法の例
  • MYSQL バッチ挿入データ実装コード
  • MySQL でバッチ挿入を実装してパフォーマンスを最適化するチュートリアル
  • ユニークインデックスを使用したMySQLバッチ挿入を回避する方法
  • MySQL バッチデータ挿入スクリプト
  • MySQL バッチ SQL 挿入パフォーマンス最適化の詳細な説明
  • MySQL バッチ挿入とユニークインデックスの問題に対する解決策
  • MySQL の挿入およびバッチ ステートメントのいくつかの例の詳細な説明

<<:  高度な CSS の 3 つの方法を使用して複数行の省略を実装するサンプル コード

>>:  Web デザイン リファレンス Firefox デフォルト スタイル

推薦する

MySql マスタースレーブレプリケーションの実装原理と構成

データベースの読み取りと書き込みの分離は、トラフィック量の多い大規模システムやインターネット アプリ...

Tcl言語に基づくシンプルなネットワーク環境を構成するプロセスの分析

1. Tclスクリプトファイルcircle.tclコードコメント #シミュレーションに必要なプロパテ...

ネイティブjsは9マスグリッドのドラッグアンドドロップを実現します

ネイティブJSを使用して9つの正方形のグリッドを記述し、9つのグリッドの位置をドラッグして変更する効...

CentOS 6.9 で glibc ダイナミック ライブラリをアップグレードする詳細なプロセス

glibc は、gnu によってリリースされた libc ライブラリ、つまり c ランタイム ライブ...

CentOSバージョンにDockerをインストールする際のエラーの解決方法

1. バージョン情報 # cat /etc/system-release CentOS Linux ...

HTML と CSS を書くための 6 つの最も効果的な方法

この記事では、効率を向上させ、時間を節約することを願って、最も効果的な 6 つの方法を紹介します。 ...

固定、流動的、柔軟なウェブページレイアウトの長所と短所の分析

ウェブデザイナーを長い間悩ませてきた疑問があります。それは、固定レイアウト、流動的レイアウト、柔軟レ...

Zabbixを使用してOracleテーブルスペースの操作プロセスを監視する

0. 概要Zabbix は非常に強力なオープンソースの監視ツールです。以下では、Zabbix がテー...

Windows CVE-2019-0708 リモート デスクトップ コード実行脆弱性の再現問題

1. 脆弱性の説明マイクロソフトは2019年5月15日、CVE番号CVE-2019-0708のWin...

jQuery+h5 で 9 マス抽選特殊効果を実現 (フロントエンドとバックエンドのコード)

序文:フロントエンド: jq+h5 で 9 グリッドのダイナミック効果を実現バックエンド: thin...

nginx ウェブサイト サービスのアンチホットリンクを設定する方法 (推奨)

1. ホットリンクの原則1.1 Webページの準備Web ソース ホスト (192.168.153...

ホスト上のDockerコンテナ内でシェルまたはプログラムを実行する

Docker コンテナに繰り返し入って操作することを避けるために、コンテナ内の一連の命令をホストマシ...

Vueでスケルトンスクリーンを実装する例

目次スケルトンスクリーンの使用Vueアーキテクチャスケルトンスクリーンアイデアの概要抽象コンポーネン...

複数の HTML ページで HTML コードをまとめて呼び出す方法

方法 1: スクリプト方式を使用する:共通ヘッダー ファイル head.js または共通フッター フ...

Docker-compose を使用して Django アプリケーションをオフラインでデプロイする方法

目次開発環境用のDocker-ceをインストールする開発環境用のDocker-composeをインス...