最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Mysql 系列 | 復(fù)制表數(shù)據(jù)

2022-11-17 15:57 作者:限量版范兒  | 我要投稿

需要復(fù)制的數(shù)據(jù)較少的場(chǎng)合,可以控制源表掃描行數(shù)且加鎖范圍很小的情況下,直接用?insert...select?語(yǔ)句即可實(shí)現(xiàn)少量數(shù)據(jù)的復(fù)制。

數(shù)據(jù)量較大的情況,為了避免源表加讀鎖,需要先將數(shù)據(jù)放入外部文件,再寫(xiě)入目標(biāo)表。

mysqldump 導(dǎo)出

mysqldump -h$host -P$port -u$user --add-locks=0 --no-create-info --single-transaction --set-gtid-purged=OFF db1 t --where="a>900" --result-file=dbbk.sql

  • 用 mysqldump 命令將數(shù)據(jù)導(dǎo)出成 insert 語(yǔ)句

  • 可以通過(guò)添加 where 條件,實(shí)現(xiàn)導(dǎo)出部分?jǐn)?shù)據(jù)

  • 文件保存在客戶端機(jī)器,會(huì)自動(dòng)覆蓋之前的同名文件

  • -add-locks=0?表示輸出的文件結(jié)果中沒(méi)有?LOCK TABLES t WRITE;

  • -no-create-info?表示不導(dǎo)出表結(jié)果

  • -single-transaction?表示導(dǎo)出時(shí)不對(duì)表 db1.t 加鎖,使用?START TRANSACTIONWITH CONSISTENTSNAPSHOT?的方法

  • -set-gtid-purged=off?表示不輸出 gtid 相關(guān)的信息

  • -result-file?表示輸出文件的路徑

  • 將數(shù)據(jù)寫(xiě)入目標(biāo)數(shù)據(jù)庫(kù) db2 中,mysql -h$host -P$port -u$user db2 -e "source dbbk.sql"

導(dǎo)出 CSV 文件

select * from db1.t where a>900 into outfile 'dbbk.csv';

  • 導(dǎo)出的 csv 文件保存在數(shù)據(jù)庫(kù)服務(wù)端,且每次只能導(dǎo)出一張表的數(shù)據(jù)

  • into outfile?表示輸出文件的位置,受參數(shù)?secure_file_priv?的限制

    • secure_file_priv=empty,表示不限制文件生成的位置,不建議??!

    • secure_file_priv=具體路徑,表示生成的文件只能放在指定目錄或子目錄

    • secure_file_priv=NULL,表示禁止在 Mysql 實(shí)例中進(jìn)行導(dǎo)出 csv 操作

  • 如果服務(wù)器存在同名文件會(huì)報(bào)錯(cuò),不會(huì)自動(dòng)覆蓋

  • 這種方式只會(huì)導(dǎo)出數(shù)據(jù),沒(méi)有表結(jié)構(gòu)

  • 將數(shù)據(jù)寫(xiě)入目標(biāo) db2.t 表中,以換行符為每一行數(shù)據(jù)的分隔符,load data infile 'dbbk.csv' into table db2.t;

物理拷貝

  • innodb 表都對(duì)應(yīng)有?.frm?和?.ibd?文件,但是直接拷貝這兩文件不管用?。?!除了物理文件外,還需要在數(shù)據(jù)字典中注冊(cè),否則系統(tǒng)不會(huì)識(shí)別

  • Mysql5.6 引入了可傳輸表空間(transportable tablespace)的方法,通過(guò)導(dǎo)出后導(dǎo)入表空間的方式實(shí)現(xiàn)

    • create table t2 like t1,創(chuàng)建一個(gè)相同表結(jié)構(gòu)的空表 t2

    • alter table t2 discard tablespace,t2.ibd 文件會(huì)被刪除

    • flush table t1 for export,生成 t1.cfg 文件,此時(shí)表 t1 只讀,直到 unlock tables

    • cp t1.cfg t2.cfg cp t1.ibd t2.ibd,得到 t2.cfg 和 t2.ibd,注意文件權(quán)限,Mysql需要可讀寫(xiě)

    • unlock tables,t1.cfg 文件會(huì)被刪除

    • alter table t2 import tablespace,將 t2.ibd 作為表 t2 的新的表空間

  • 物理拷貝方式,比起前兩種速度最快

  • 只能拷貝全表數(shù)據(jù),而且需要登陸到服務(wù)器進(jìn)行操作

  • 源表和目標(biāo)表的引擎必須都是 innodb


三種方式各有利弊,選擇合適的就是最好的

鏈接:https://www.dianjilingqu.com/613844.html

Mysql 系列 | 復(fù)制表數(shù)據(jù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
鸡东县| 亚东县| 工布江达县| 繁昌县| 阜平县| 简阳市| 台中市| 无棣县| 射洪县| 无极县| 勃利县| 汝城县| 鄯善县| 兴业县| 日喀则市| 原阳县| 怀柔区| 连江县| 平安县| 阜康市| 韩城市| 新昌县| 大同县| 汽车| 梁山县| 津南区| 兴宁市| 宝清县| 玉环县| 江达县| 绥芬河市| 锦屏县| 临沂市| 三都| 铅山县| 桑日县| 天津市| 灵璧县| 扶绥县| 西乡县| 临高县|