序文 多くの MySQL テスト シナリオでは、テスト用に一部のテスト データを手動で生成する必要があります。この記事では、ユーザー名、携帯電話番号、生年月日などのフィールドを生成できる MySQL の大規模テーブル ストレージを構築する手順について説明します。重複する携帯電話番号を除外して、実際のシナリオをシミュレートすることもできます。 1. スクリプトを生成する 組み立て手順: 次のストアド プロシージャは、ユーザー名、携帯電話番号、生年月日などのフィールドを含む大きなテーブルをバッチ生成するために使用されます。 このストアド プロシージャは uid を主キーとして使用するため、少数の重複した携帯電話番号が生成されます。重複をフィルタリングする SQL スクリプトは後で提供されます。 一度に一意の携帯電話番号を生成する場合は、次のスクリプトを変更して uid を削除し、mobile 列を主キーとして使用することを検討してください。 big_tableが存在する場合はテーブルを削除します。 prc_gen_user が存在する場合はプロシージャを削除します。 テーブル `big_table` を作成します ( `uid` int(11) NOT NULL AUTO_INCREMENT, `mobile` char(11) デフォルト NULL, `passwd` varchar(50) デフォルト NULL, `name` varchar(50) デフォルト NULL, `sex` tinyint デフォルト NULL, `birthday` 日時 デフォルト NULL、 `updated_time` 日時 デフォルト NULL、 主キー (`uid`) )ENGINE=InnoDB デフォルト文字セット=utf8; プロシージャprc_gen_user(l_cnt int)を作成します。 始める x INT DEFAULT 0 を宣言します。 p char(11) を宣言します。 x < l_cnt の場合 する x = x + 1 を設定します。 設定p = 連結('1', 部分文字列(キャスト(3 + (rand() * 10) % 7 AS char(50)), 1, 1), 右(左(トリム(キャスト(rand() AS char(50))), 11), 9)); big_tableにINSERT(モバイル、 パスワード、 名前、 セックス、 誕生日、 更新日時 値 ( p、 md5(天井(rand() * 1000000))、 連結( 部分文字列( 'Zhao Qiansun li Zhou Zheng Wang Feng Chen Zhu Wei Jiang Chen Han Yang Zhu Qin He Lu Shi Zhang Kong Cao Yan Hua Jin Jian Eng Bao Shi Tang Fei Lian Cen Xue Lei he ni tang yin luo hao wu an chang le yu yu shi fu pi qi yu yu yuan bu gu meng ping huang Zhu Dong Liang Du Ruan Lan Xi Ji Ma Qiang Lu Lou Wei Jiang Tong Yan Guo heng Lin Diao Zhon Zuo Shi Cui Ji Niu Gong '、 フロア(1 + 190 * ランド())、 1)、 部分文字列( : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : フロア(1 + 400 * ランド())、 1)、 部分文字列( : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : フロア(1 + 400 * ランド())、 1))、 天井(rand() * 10) % 2, 日付( 今() - 間隔 (20 + 天井(rand() * 100) % 40) 年)、 連結('2018-', 1 + 天井(rand() * 100) % 12, '-'、 1 + 天井(rand() * 100) % 28)) 重複キー更新の場合 updated_time = now(); 終了しながら; 終わり 2. データ入力 prc_gen_user(1000)を呼び出します。 クエリは正常、1 行が影響を受けました (1.38 秒) big_tableからcount(*)を選択します。 +----------+ | カウント(*) | +----------+ | 1000 | +----------+ セット内の 1 行 (0.00 秒) 「Leshami」著者、「http://blog.csdn.net/leshami」ブログを選択します。 +---------+------------------------------+ | 著者 | ブログ | +---------+------------------------------+ | レシャミ | http://blog.csdn.net/leshami | +---------+------------------------------+ 3. 重複するSQL文のフィルタリング big_tableから削除 WHERE mobile IN (SELECT mobile (u1.mobileから選択) big_table u1 から u1.mobileによるグループ カウント(*) > 1) a) AND uid NOT IN (SELECT uid FROM (SELECT min(u2.uid) AS uid big_table u2 から u2.mobileによるグループ count(*) > 1) b); を満たす IV. その他 この記事では、ユーザーデータ(名前/携帯電話番号/誕生日/パスワード)のMySQLバッチ作成を実装する次のコードを参照します。 batchGenerateUsers が存在する場合は削除プロシージャを実行します。 区切り文字 $$ CREATE PROCEDURE batchGenerateUsers() 始める DECLARE x INT デフォルト 0; p char(11) を宣言します。 x < 10000 の場合 x=x+1 を設定します。 p=concat('1', cast(3+(rand()*10)%7 as char(1)), right(left(trim(cast(rand() as char (20))), 11),9));を設定します。 my_users(mobile, passwd, name, sex, birthday, updated_time) に挿入します。 値(p, md5(天井(rand()*1000000))、 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 天井(rand()*10)%2、 日付(現在()-間隔(20+上限(rand()*100)%40)年)、 連結('2015-', 1+天井(rand()*100)%12,'-',1+天井(rand()*100)%28)) 重複キーの更新について 更新日時=現在(); 終了しながら; 終了 $$ #batchGenerateUsers() を呼び出します。 適切に修正してください。 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
上はシステム時間、下はハードウェア時間です。ここでは変更を加えているので、同じくらいの速さになってい...
この記事は主に、初心者に XHTML の基本的な知識と、XHTML と HTML の違いを理解しても...
初めて仮想マシンに MySQL をインストールしたとき、多くの問題が発生しました。ここでそれらを書き...
CSS命名規則(ルール) よく使われるCSS命名規則ヘッダー: ヘッダーコンテンツ: コンテンツ/コ...
純粋な CSS で固定ヘッダーを実装するのが難しい主な理由は 2 つあります。まず、最大のシェアを持...
目次序文1. 効果は図の通りです2. 具体的な実施手順1. Vuexの紹介2.webscoked実装...
Linux バージョンに関する情報を表示および解釈するのは、見た目よりも少し複雑です。単純なバージョ...
最近、VMware 仮想マシンで CentOS を試していたのですが、インストール後にインターネット...
目次Dockerとは展開する1. イメージをプルする2. 画像を表示する3. コンテナを実行する4....
会社の影響力が拡大し、製品が改良され続けるにつれて、関連するイメージデザインもそれに追いつき、徐々に...
みなさんこんにちは。私は梁旭です。 Linux を使用するときに、計算を行う必要がある場合があり、そ...
目次HTTP ハイジャック、DNS ハイジャック、XSS HTTPハイジャックDNSハイジャックXS...
mysqlは指定された期間内の統計データを取得します年別統計 選択 カウント(*)、 DATE_FO...
概要: MySQL JDBC 抽出にはどのような方法を使用すればよいでしょうか? その方法を説明しま...
サーバーデータがSSL証明書を使用して暗号化および認証されていない場合、ユーザーのデータはプレーンテ...