校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > MySQL快速插入一億測試數據

MySQL快速插入一億測試數據

熱門標簽:外東北地圖標注 智能外呼系統復位 大眾點評星級酒店地圖標注 云南電商智能外呼系統價格 拉卡拉外呼系統 話務外呼系統怎么樣 臨清電話機器人 400電話可以辦理嗎 高清地圖標注道路

1、建表

1.1 建立測試表 t_user

CREATE TABLE `t_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `c_user_id` varchar(36) NOT NULL DEFAULT '' COMMENT '用戶Id',
  `c_name` varchar(22) NOT NULL DEFAULT '' COMMENT '用戶名',
  `c_province_id` int(11) NOT NULL COMMENT '省份Id',
  `c_city_id` int(11) NOT NULL COMMENT '城市Id',
  `create_time` datetime NOT NULL COMMENT '創建時間',
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`c_user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

1.2 創建臨時表

CREATE TABLE `tmp_table` (
  `id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、生成數據

2.1 用 python生成 【一億】 記錄的數據文件(這個確實稍微花點時間)

python -c "for i in range(1, 1+100000000): print(i)" > base.txt

2.2 將生成的文件導入到臨時表tmp_table中

找到對應的數據庫

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> use test;
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| student        |
| t_user         |
| tmp_table      |
+----------------+
3 rows in set (0.00 sec)

執行導入命令

mysql> load data infile 'E:/base.txt' replace into table tmp_table;
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option 
so it cannot execute this statement
mysql>

導入數據時有可能會報錯,原因是mysql默認沒有開secure_file_priv( 這個參數用來限制數據導入和導出操作的效果,例如執行LOAD DATA、SELECT … INTO OUTFILE語句和LOAD_FILE()函數。這些操作需要用戶具有FILE權限。 )

解決辦法:在mysql的配置文件中(my.ini 或者 my.conf)中添加 secure_file_priv = 文件所在的路徑 ,  然后重啟mysql 解決。添加自己文件放置的路徑即可。

可以用 show variables like '%secure%'; 先看一下配置:

mysql> show variables like '%secure%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| require_secure_transport | OFF   |
| secure_auth              | ON    |
| secure_file_priv         | NULL  |
+--------------------------+-------+
3 rows in set, 1 warning (0.00 sec)

說明:

secure_file_prive=null   限制mysqld 不允許導入導出
secure_file_priv=/var/lib/mysql-files/   限制mysqld的導入導出只能發生在/var/lib/mysql-files/目錄下
secure_file_priv=' '     不對mysqld的導入導出做限制

注意:配置要添加到 [mysqld] 節點下,至于路徑加不加引號,你可以試試:

重啟MySQL,先查看配置:

mysql> use test;
Database changed
mysql> show variables like '%secure%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| require_secure_transport | OFF   |
| secure_auth              | ON    |
| secure_file_priv         | E:\   |
+--------------------------+-------+
3 rows in set, 1 warning (0.00 sec)

再重新導入:

mysql> load data infile 'E:/base.txt' replace into table tmp_table;
Query OK, 100000000 rows affected (3 min 53.42 sec)
Records: 100000000  Deleted: 0  Skipped: 0  Warnings: 0
 
mysql>

億級數據,233.42s,看一下別人的數據,差不多就是這個。

3、以臨時表為基礎數據,插入數據到t_user中

一億數據需要:快半個小時了。。。(或許直接在命令行下運行更快點...)

更新創建時間字段讓插入的數據的創建時間更加隨機:

mysql> UPDATE t_user SET create_time=date_add(create_time, interval FLOOR(1 + (RAND() * 7)) year);
Query OK, 100000000 rows affected (7 min 24.17 sec)
Rows matched: 100000000  Changed: 100000000  Warnings: 0
 
mysql> UPDATE t_user SET create_time=date_add(create_time, interval FLOOR(1 + (RAND() * 7)) year);
Query OK, 100000000 rows affected (8 min 2.49 sec)
Rows matched: 100000000  Changed: 100000000  Warnings: 0

到此,一億數據插入結束。

4、參考

MySQL如何快速的創建千萬級測試數據

The MySQL server is running with the --secure-file-priv option

到此這篇關于MySQL快速插入一億測試數據的文章就介紹到這了,更多相關MySQL 插入一億數據內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • mysql大批量插入數據的4種方法示例
  • mysql中迅速插入百萬條測試數據的方法
  • MySql中把一個表的數據插入到另一個表中的實現代碼
  • 用一條mysql語句插入多條數據
  • MYSQL批量插入數據的實現代碼
  • mysql技巧:提高插入數據(添加記錄)的速度
  • mysql 從一個表中查數據并插入另一個表實現方法
  • 解決Mysql數據庫插入數據出現問號(?)的解決辦法

標簽:無錫 阿里 福州 定西 溫州 揚州 山西 三明

巨人網絡通訊聲明:本文標題《MySQL快速插入一億測試數據》,本文關鍵詞  MySQL,快速,插入,一億,測試,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL快速插入一億測試數據》相關的同類信息!
  • 本頁收集關于MySQL快速插入一億測試數據的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 东港市| 哈巴河县| 商河县| 衡阳市| 宁化县| 通海县| 五莲县| 德庆县| 华蓥市| 密云县| 五河县| 兰西县| 宜君县| 丰台区| 海淀区| 隆回县| 循化| 五华县| 新竹市| 增城市| 宾阳县| 两当县| 子洲县| 武邑县| 扎囊县| 屯留县| 宝兴县| 华容县| 凤台县| 崇仁县| 台州市| 公安县| 绥化市| 黎城县| 扶绥县| 盱眙县| 涞源县| 梁山县| 涿州市| 鄱阳县| 呼玛县|