欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL快速插入一億測(cè)試數(shù)據(jù)

 更新時(shí)間:2021年06月22日 11:10:16   作者:tiankong_12345  
本文主要介紹了MySQL快速插入一億測(cè)試數(shù)據(jù),有時(shí)候測(cè)試需要大量的數(shù)據(jù),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1、建表

1.1 建立測(cè)試表 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 '創(chuàng)建時(shí)間',
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`c_user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

1.2 創(chuàng)建臨時(shí)表

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

2、生成數(shù)據(jù)

2.1 用 python生成 【一億】 記錄的數(shù)據(jù)文件(這個(gè)確實(shí)稍微花點(diǎn)時(shí)間)

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

2.2 將生成的文件導(dǎo)入到臨時(shí)表tmp_table中

找到對(duì)應(yīng)的數(shù)據(jù)庫(kù)

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)

執(zhí)行導(dǎo)入命令

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>

導(dǎo)入數(shù)據(jù)時(shí)有可能會(huì)報(bào)錯(cuò),原因是mysql默認(rèn)沒(méi)有開(kāi)secure_file_priv( 這個(gè)參數(shù)用來(lái)限制數(shù)據(jù)導(dǎo)入和導(dǎo)出操作的效果,例如執(zhí)行LOAD DATA、SELECT … INTO OUTFILE語(yǔ)句和LOAD_FILE()函數(shù)。這些操作需要用戶具有FILE權(quán)限。 )

解決辦法:在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)

說(shuō)明:

secure_file_prive=null   限制mysqld 不允許導(dǎo)入導(dǎo)出
secure_file_priv=/var/lib/mysql-files/   限制mysqld的導(dǎo)入導(dǎo)出只能發(fā)生在/var/lib/mysql-files/目錄下
secure_file_priv=' '     不對(duì)mysqld的導(dǎo)入導(dǎo)出做限制

注意:配置要添加到 [mysqld] 節(jié)點(diǎn)下,至于路徑加不加引號(hào),你可以試試:

重啟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)

再重新導(dǎo)入:

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>

億級(jí)數(shù)據(jù),233.42s,看一下別人的數(shù)據(jù),差不多就是這個(gè)。

3、以臨時(shí)表為基礎(chǔ)數(shù)據(jù),插入數(shù)據(jù)到t_user中

一億數(shù)據(jù)需要:快半個(gè)小時(shí)了。。。(或許直接在命令行下運(yùn)行更快點(diǎn)...)

更新創(chuàng)建時(shí)間字段讓插入的數(shù)據(jù)的創(chuàng)建時(shí)間更加隨機(jī):

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

到此,一億數(shù)據(jù)插入結(jié)束。

4、參考

MySQL如何快速的創(chuàng)建千萬(wàn)級(jí)測(cè)試數(shù)據(jù)

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

到此這篇關(guān)于MySQL快速插入一億測(cè)試數(shù)據(jù)的文章就介紹到這了,更多相關(guān)MySQL 插入一億數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql中截取字符串的6個(gè)函數(shù)講解

    mysql中截取字符串的6個(gè)函數(shù)講解

    這篇文章主要介紹了mysql中截取字符串的6個(gè)函數(shù)講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Navicat Premium如何導(dǎo)入SQL文件的方法步驟

    Navicat Premium如何導(dǎo)入SQL文件的方法步驟

    這篇文章主要介紹了Navicat Premium如何導(dǎo)入SQL文件的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 利用JuiceFS使MySQL?備份驗(yàn)證性能提升?10?倍

    利用JuiceFS使MySQL?備份驗(yàn)證性能提升?10?倍

    這篇文章主要介紹了如何讓?MySQL?備份驗(yàn)證性能提升?10?倍,JuiceFS?非常適合用來(lái)做?MySQL?物理備份,通過(guò)不斷調(diào)整?XtraBackup?的參數(shù)和?JuiceFS?的掛載參數(shù),在一個(gè)小時(shí)內(nèi)將時(shí)間縮短到原先的?1/10,下文一起來(lái)看相關(guān)內(nèi)容的詳細(xì)介紹吧
    2022-03-03
  • SQL數(shù)據(jù)分表Mybatis?Plus動(dòng)態(tài)表名優(yōu)方案

    SQL數(shù)據(jù)分表Mybatis?Plus動(dòng)態(tài)表名優(yōu)方案

    這篇文章主要介紹了SQL數(shù)據(jù)分表Mybatis?Plus動(dòng)態(tài)表名優(yōu)方案,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • MySQL數(shù)據(jù)庫(kù)終端—常用操作指令代碼

    MySQL數(shù)據(jù)庫(kù)終端—常用操作指令代碼

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)終端—常用操作指令代碼,添加用戶、更改用戶名和host主機(jī)、更改密碼、刪除用戶等等,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-01-01
  • MySQL通過(guò)DQL實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的條件查詢

    MySQL通過(guò)DQL實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的條件查詢

    這篇文章給大家介紹了MySQL如何通過(guò)DQL進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)的條件查詢,文中通過(guò)代碼示例和圖文結(jié)合介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • mysql遞歸查詢所有子集的實(shí)現(xiàn)方法

    mysql遞歸查詢所有子集的實(shí)現(xiàn)方法

    本文主要介紹了mysql遞歸查詢所有子集的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • MYSQL將表名稱修改成大寫的存儲(chǔ)過(guò)程

    MYSQL將表名稱修改成大寫的存儲(chǔ)過(guò)程

    這篇文章主要為大家詳細(xì)介紹了MYSQL將表名稱修改成大寫的存儲(chǔ)過(guò)程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • RedHat下MySQL的基本使用方法分享

    RedHat下MySQL的基本使用方法分享

    RedHat 下MySQL安裝,簡(jiǎn)單設(shè)置以用基本的使用方法,需要的朋友可以參考下。
    2011-08-08
  • MySQL?使用觸發(fā)器記錄用戶的操作日志問(wèn)題

    MySQL?使用觸發(fā)器記錄用戶的操作日志問(wèn)題

    使用?MySQL?觸發(fā)器可以記錄哪些用戶、什么時(shí)間對(duì)數(shù)據(jù)表進(jìn)行了增、刪、改操作。如果執(zhí)行刪除操作,則記錄刪除之前的數(shù)據(jù)記錄;如果執(zhí)行更新操作,記錄更新之前的數(shù)據(jù)記錄,這篇文章主要介紹了MySQL?使用觸發(fā)器記錄用戶的操作日志,需要的朋友可以參考下
    2022-12-12

最新評(píng)論