1樓:愛可生雲資料庫
本文介紹 mysql 8.0 shell 子模組 util 的兩個匯入特性 importtable/import_table(js和python 版本的命名差異)、importjson/import_json的使用方法。
其中 import_table 是通過傳統 mysql 協議來通訊,import_json 是通過 x 外掛協議來通訊。mysql 一直以來提供匯入檔案 sql 命令 load data infile(單執行緒)以及對應的可執行檔案 mysqlimport(多執行緒)。
比如我匯入 100w 行示例資料到表 ytt.tl1,花了 24 秒。這個已經是 mysql 預設匯入來的最快的。
分析那我們現在看下 mysqlimport 工具的升級版,mysqlshell 的 util 工具集。
使用這兩個工具之前,必須得臨時開啟 local_infile 選項。1. import_table建立 3306 埠的新連線我這裡切換為 python 模式清空掉示例表 ytt.
tl1import_table 有兩個引數,第一個引數定義匯入檔案的路徑,第二個定義相關選項,比如匯入的格式,併發的數量等。定義檔案路徑(引數1)定義選項(引數2)執行匯入:只花了不到 17 秒,比傳統 mysqlimport 快了不少。
我們上面指定了顯式指定了欄位分隔符,那有沒有已經定義好的組合格式呢? 答案是有的,選項 dialect 可以指定以下格式:csv,tsv,json,csv-unix那麼上面的匯入,我們可以更簡單,改下變數 y_options1 的定義匯入時間差不多。
這裡要說明下,dialect 選項的優先順序比較低,比如新增了'linesterminatedby':'\r\n', 則覆蓋他自己的'\n'。
選項 diaelect 還有一個可選值為 json,可以直接把 json 結果匯入到文件表裡。比如我新建一張表 tl1_json重新定義檔案以及匯入選項。匯入 json 資料速度也還可以,不到 24 秒。
那匯入 json 資料,就必須得提到以 x 外掛協議通訊的工具 import_json了。2. imort_json我們切換到 mysqlx 埠import_json 引數和 import_table 引數類似,這裡我改下選項我在手冊上沒有看到多執行緒的選項,所以單執行緒跑 35 秒慢了些。
檢視剛剛匯入的資料import_json 不僅僅可以匯入 json 資料,更重要的是可以在 bson 和 json 之間平滑的轉換,有興趣的同學可以去 try 下。
2樓:匿名使用者
若要將大量的資料值插入到資料庫的一個或多個表中,使用insert into語句來實現將是一項無聊的工作。
1、load data通過讀取本地檔案系統上的檔案,可以將大量資料新增到資料庫中。
mysql> load data infile 『datafile.txt』 into table db2.table_name;
mysql> load data infile 『datafile.txt』 into table db2.table_name fields terminated by 『,』 optionally enclosed by 『」『;
mysql> load data infile 「file.txt」 into table table_name fields terminated by 『\t』 (sid,name);
2、還有一個mysqlimport命令可以批量增加,mysqlimport直接從檔案讀取批量資料。它相當於load data語句的一個介面。
mysqlimport可以自動生成一個load data語句,該語句把filename.txt檔案中的資料裝入table_name表中。
mysqlimport根據檔名匯入表名,即將檔名第一個圓點前的所有字元作為表名。例如,檔案class.txt被裝入class表中。
例如:mysqlimport -l -uroot -proot db01 table_name.txt;
mysqlimport -local table_name filename.txt;
3、datafile.txt內容:
「1」,」a string」,」100.20″
「2」,」a string containing a , comma」,」102.20″
「3」,」a string containing a \」 quote」,」102.20″
「4」,」a string containing a \」, quote and comma」,」102.20″
4、假如你有x表,匯入了一個y表,將y表資料插入x表:
insert into x select * from y;
如何用shell指令碼將在mysql資料庫中得到的資料匯入到oracle資料庫中?
3樓:超級小褲衩
有一個工具是mysql到oracle做資料遷移的叫convert mysql to oracle 你可以試試,不知道合不合適。
非要弄shell的話,那可真是麻煩可以選擇讓程式設計師寫個小程式轉換sql的讓後用shell呼叫。
真自己寫shell。。。那就折騰匯出來的 create、insert語句吧。想想都頭大。是在沒必要完全用shell弄。
linux shell指令碼執行mysql mysql資料庫在遠端伺服器上
4樓:
給你一個操作mysql的shell,自己舉一反三
mysql -u』username』 -p』passwd『 -d 'dbname' -e 'select * from tablename'
5樓:
新建檔案
內容:#!/bin/sh
mysql 操作
......
儲存執行chmod u+x 新建檔案name
怎麼用shell指令碼 去 讀取mysql的資料,並把資料傳到該指令碼中,替換變數
6樓:匿名使用者
#!/bin/bash
user="root"
pass="123456"
database="cactidb"
table="cdef"
data=`mysql -u $user -p$pass $database < select * from $table; eof` echo $data 7樓:匿名使用者 var=`echo "select * from sometable" | mysql -u username -ppassword dbname` 如何在shell中操作mysql資料庫 8樓:匿名使用者 對mysql偶爾有用的另一個選項是-e或--execute選項,可用來將sql語句傳遞給伺服器。該語句必須 用引號引起來(單引號或雙引號)。(然而,如果想要在查詢中將值引起來,則對於查詢應使用雙引號 ,查詢中引用的值應使用單引號)。當使用該選項時,語句被執行,然後mysql立即退出命令外殼。 例如,你可以用下面的命令獲得使用者賬戶列表: shell> mysql -u root -p -e "select user, host from user" mysql 請注意mysql資料庫名作為一個獨立的參量傳遞。然而,相同的查詢可能已經使用mysql -u root -p -e "select user,host from mysql.user"從外殼中執行。 可以按這種方式傳遞多個sql語句,用分號隔開: shell> mysql -u root -p --execute="select name from country where name like 'au%';select count(*) from city" world 9樓:出門在外 mysql -uroot -p -e 〃mysql的命令〃 mysql和access的區別 mysql特性 很便宜,通常是免費的 網路承載少 查詢 優化 可以簡便的應用程式通過mysql做備份 mysql操縱簡單,易上手,且為各種不同的資料格式提供有彈性的擴充套件介面 odbc access特性 簡單易學,使用方便,開發效率高。mysql對於大多數使用者而言... createusertomidentifiedby 密碼 建立使用者 grantallprivilegesondbname.totom 把dbname庫的所有操作許可權都給tomflushprivileges 重新整理快取,生效 在控制檯根目錄下開啟sqlserver企業管理器,新建sqlserve... mysqldump 命令算嗎 怎麼備份mysql資料庫 mysql資料庫怎麼備份啊?假如是用phpmyadmin的話就直接upload就可以了假如用的是虛擬空間的話後臺應當有控制面板,有立案mysql功能的 mysql資料庫怎麼備份資料庫 mysqldump基本語法 mysqldump u user...mysql資料庫和access資料庫有什麼區別
如何在MYSQL資料庫中資料庫,如何在MYSQL資料庫中新建一個資料庫
mysql資料庫怎麼備份資料庫,怎麼備份mysql資料庫