shell 连接 mysql_如何把mysql语句写在shell里,运行后仍然是一个与mysql数据库连接的状态?...
展開全部
本文介紹 MySQL 8.0 shell 子模塊 Util 的兩個導(dǎo)入特性 importTable/import_table(JS和python 版本的命名差62616964757a686964616fe58685e5aeb931333433626538異)、importJson/import_json的使用方法。
其中 import_table 是通過傳統(tǒng) MySQL 協(xié)議來通信,Import_json 是通過 X 插件協(xié)議來通信。MySQL 一直以來提供導(dǎo)入文件 SQL 命令 load data infile(單線程)以及對應(yīng)的可執(zhí)行文件 mysqlimport(多線程)。
比如我導(dǎo)入 100W 行示例數(shù)據(jù)到表 ytt.tl1,花了 24 秒。這個已經(jīng)是 MySQL 默認(rèn)導(dǎo)入來的最快的。分析那我們現(xiàn)在看下 mysqlimport 工具的升級版,mysqlshell 的 util 工具集。
使用這兩個工具之前,必須得臨時開啟 local_infile 選項。1. import_table建立 3306 端口的新連接我這里切換為 python 模式清空掉示例表 Ytt.tl1import_table 有兩個參數(shù),第一個參數(shù)定義導(dǎo)入文件的路徑,第二個定義相關(guān)選項,比如導(dǎo)入的格式,并發(fā)的數(shù)量等。定義文件路徑(參數(shù)1)定義選項(參數(shù)2)執(zhí)行導(dǎo)入:只花了不到 17 秒,比傳統(tǒng) mysqlimport 快了不少。
我們上面指定了顯式指定了字段分隔符,那有沒有已經(jīng)定義好的組合格式呢? 答案是有的,選項 dialect 可以指定以下格式:csv,tsv,json,csv-unix那么上面的導(dǎo)入,我們可以更簡單,改下變量 y_options1 的定義導(dǎo)入時間差不多。這里要說明下,dialect 選項的優(yōu)先級比較低,比如添加了'linesTerminatedBy':'\r\n', 則覆蓋他自己的'\n'。
選項 diaelect 還有一個可選值為 json,可以直接把 json 結(jié)果導(dǎo)入到文檔表里。比如我新建一張表 tl1_json重新定義文件以及導(dǎo)入選項。導(dǎo)入 JSON 數(shù)據(jù)速度也還可以,不到 24 秒。那導(dǎo)入 json 數(shù)據(jù),就必須得提到以 X 插件協(xié)議通信的工具 import_json了。2. imort_json我們切換到 mysqlx 端口import_json 參數(shù)和 Import_table 參數(shù)類似,這里我改下選項我在手冊上沒有看到多線程的選項,所以單線程跑 35 秒慢了些。查看剛剛導(dǎo)入的數(shù)據(jù)import_json 不僅僅可以導(dǎo)入 Json 數(shù)據(jù),更重要的是可以在 BSON 和 JSON 之間平滑的轉(zhuǎn)換,有興趣的同學(xué)可以去 TRY 下。
總結(jié)
以上是生活随笔為你收集整理的shell 连接 mysql_如何把mysql语句写在shell里,运行后仍然是一个与mysql数据库连接的状态?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将image存入mysql数据库_有谁知
- 下一篇: linux cmake编译源码,linu