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

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

MySQL mysqldump命令的正確應用

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

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

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

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

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

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

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

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

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

從壓縮文件直接恢復:

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

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

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

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

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

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

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

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

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

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

(7)--no-create-db

(8)--no-create-info

(9)--no-data

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

3.MySQL中的臨時表及HEAP表

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

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

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

DROP TABLE tmp_table

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

當你使用HEAP表時,這里是你應該考慮的一些事情:

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

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

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

HEAP不支持BLOB/TEXT列。

HEAP不支持AUTO_INCREMENT列。

HEAP不支持在一個NULL列上的索引。

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

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

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

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

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

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

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

相關(guān)閱讀

文章評論
發(fā)表評論

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

相關(guān)下載

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