IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁數(shù)據(jù)庫MYSQL → MySQL mysqldump命令的正確應(yīng)用

MySQL mysqldump命令的正確應(yīng)用

時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(1)

MySQL mysqldump命令在實(shí)際中的應(yīng)用比例還是占為多數(shù)的,如果你對(duì)這一技術(shù),心存好奇的話,以下的文章將會(huì)揭開它的神秘面紗。希望會(huì)給你帶來一些幫助在以后的學(xué)習(xí)或是工作中。

1.用MySQL mysqldump對(duì)MySQL數(shù)據(jù)庫進(jìn)行數(shù)據(jù)備份與恢復(fù)

下面假設(shè)要備份tm這個(gè)數(shù)據(jù)庫:

Shell>mysqldump -uroot –p123456 tm > tm_050519.sql

這時(shí)可以利用gzip壓縮數(shù)據(jù),命令如下:

Shell>mysqldump -uroot -p123456 tm | gzip > tm_050519.sql.gz

恢復(fù)數(shù)據(jù):

Shell>mysql -uroot -p123456 tm < tm_050519.sql

從壓縮文件直接恢復(fù):

Shell>gzip < tm_050519.sql.gz | mysql -uroot -p123456 tm

2.關(guān)于使用mysqldump的一些參數(shù)選項(xiàng)

(1)直接使用MySQL mysqldump -uroot -pxxxx tetratest > "d:\data1.sql"

導(dǎo)出數(shù)據(jù)時(shí),沒有建庫語句,這時(shí)你可以手動(dòng)創(chuàng)建一個(gè)庫,然后使用:

mysql -uroot -pabcd mydatabase < "d:\data1.sql",即將一個(gè)數(shù)據(jù)庫"復(fù)制"到一個(gè)不同名稱的數(shù)據(jù)庫下。同時(shí),這種情況下,存儲(chǔ)過程及函數(shù)并沒有轉(zhuǎn)儲(chǔ)到文件中。

(2)如果你未使用--quick或者--opt選項(xiàng),那么mysqldump將在轉(zhuǎn)儲(chǔ)結(jié)果之前把全部內(nèi)容載入到內(nèi)存中。這在你轉(zhuǎn)儲(chǔ)大數(shù)據(jù)量的數(shù)據(jù)庫時(shí)將會(huì)有些問題。該選項(xiàng)默認(rèn)是打開的,但可以使用--skip-opt來關(guān)閉它。

(3)使用--skip-comments可以去掉導(dǎo)出文件中的注釋語句

(4)使用--compact選項(xiàng)可以只輸出最重要的語句,而不輸出注釋及刪除表語句等等

(5)使用--database或-B選項(xiàng),可以轉(zhuǎn)儲(chǔ)多個(gè)數(shù)據(jù)庫,在這個(gè)選項(xiàng)名后的參數(shù)都被認(rèn)定為數(shù)據(jù)庫名
mysqldump -uroot -paaa --database db1 db2 >"d:\mydata.sql"。同時(shí),使用該參數(shù)會(huì)使用導(dǎo)出文件中增加創(chuàng)建庫的語句。如不帶該選項(xiàng),則第二個(gè)參數(shù)將被認(rèn)定為表名,即:MySQL mysqldump -uroot -paaa my1 mytable1 >"d:\mydata.sql",將導(dǎo)出表mytable1的結(jié)構(gòu)及數(shù)據(jù)。

(6)--tables ,在此選項(xiàng)之后的參數(shù)都被認(rèn)定為表名。

(7)--no-create-db

(8)--no-create-info

(9)--no-data

(10)--routines, -R 將使存儲(chǔ)過程、函數(shù)也轉(zhuǎn)儲(chǔ)到文件中來。
(更多請(qǐng)參考MySQL手冊(cè))

3.MySQL中的臨時(shí)表及HEAP表

給正常的CREATE TABLE語句加上TEMPORARY關(guān)鍵字:

  1. CREATE?TEMPORARY?TABLE?tmp_table?( ?
  2. name?VARCHAR(10)?NOT?NULL, ?
  3. value?INTEGER?NOT?NULL ?
  4. ) ?

臨時(shí)表將在你連接MySQL期間存在。當(dāng)你斷開時(shí),MySQL將自動(dòng)刪除表并釋放所用的空間。當(dāng)然你可以在仍然連接的時(shí)候刪除表并釋放空間。

DROP TABLE tmp_table

如果你聲明臨時(shí)表是一個(gè)HEAP表,MySQL也允許你指定在內(nèi)存中創(chuàng)建它:

  1. CREATE?TEMPORARY?TABLE?tmp_table?( ?
  2. name?VARCHAR(10)?NOT?NULL, ?
  3. value?INTEGER?NOT?NULL ?
  4. )?TYPE?=?HEAP?

HEAP表格使用一個(gè)哈希索引并且存儲(chǔ)在內(nèi)存中,這使他們更快,但是如果MySQL崩潰,你將失去所有存儲(chǔ)的數(shù)據(jù)。HEAP作為臨時(shí)表很可用!

當(dāng)你使用HEAP表時(shí),這里是你應(yīng)該考慮的一些事情:

你應(yīng)該總是在CREATE語句中指定MAX_ROWS以保證你有意不使用所有的內(nèi)存。

索引將只能與與=和<=>一起使用(但是很快)。

HEAP表使用一個(gè)固定的記錄長度格式。

HEAP不支持BLOB/TEXT列。

HEAP不支持AUTO_INCREMENT列。

HEAP不支持在一個(gè)NULL列上的索引。

你可以在一個(gè)HEAP表中有非唯一鍵(哈希表一般不這樣)。

HEAP表格在所有的客戶之間被共享(就象任何其他的表)。

HEAP表的數(shù)據(jù)以小塊分配。表是100%動(dòng)態(tài)的(在插入時(shí)),無需溢出區(qū)和額外的鍵空間。刪除的行放入一個(gè)鏈接表并且當(dāng)你把新數(shù)據(jù)插入到表時(shí),它將被再次使用。

為了釋放內(nèi)存,你應(yīng)該執(zhí)行DELETE FROM heap_table或DROP TABLE heap_table。

為了保證你不會(huì)偶然做些愚蠢的事情,你不能創(chuàng)建比max_heap_table_size大的HEAP表。

上述的相關(guān)內(nèi)容就是對(duì)MySQL mysqldump命令的描述,希望會(huì)給你帶來一些幫助在此方面。

關(guān)鍵詞標(biāo)簽:MySQL,mysqldump命令

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 Xbox Game Pass Xbox Game Pass 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL常用維護(hù)管理工具 MySQL常用維護(hù)管理工具 MySQL數(shù)據(jù)庫啟動(dòng)失敗1067進(jìn)程意外終止的解決辦法總結(jié) MySQL數(shù)據(jù)庫啟動(dòng)失敗1067進(jìn)程意外終止的解決辦法總結(jié)

相關(guān)下載

    人氣排行 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL數(shù)據(jù)庫啟動(dòng)失敗1067進(jìn)程意外終止的解決辦法總結(jié) Mysql 1045錯(cuò)誤解決辦法 MySQL服務(wù)器進(jìn)程CPU占用100%解決辦法 MySQL導(dǎo)出導(dǎo)入命令的用例 MySQL連接字符串的實(shí)際操作步驟匯總 MySQL無法啟動(dòng)、無法停止各種解決方法總結(jié) 三種常用的MySQL建表語句