MySQL數據類型(DATA Type)與數據恢復與備份方法

1、數據類型(DATA Type)概述

MySQL支持多種類型的SQL數據類型:數字類型,日期和時間類型,字符串(字符和字節)類型以及空間類型 數據類型描述使用如下約定:html

  • M表示整數類型的最大顯示寬度。對於浮點和定點類型, M是能夠存儲的總位數(精度)。對於字符串類型, M是最大長度。容許的最大值M取決於數據類型
  • D適用於浮點和定點類型,並指示小數點後面的位數(刻度)。最大可能值爲30,但不該大於 M-2。
  • 方括號([和])表示類型定義的可選部分
1.一、數字類型

M表示整數類型的最大顯示寬度。最大顯示寬度爲255.顯示寬度與類型可包含的值範圍無關,對於浮點和定點類型,M是能夠存儲的總位數。mysql

若是指定ZEROFILL數字列,MySQL會自動將該UNSIGNED 屬性添加到列中。 容許該UNSIGNED 屬性的數字數據類型也容許SIGNED。可是,默認狀況下SIGNED會對這些數據類型進行簽名,所以該 屬性不起做用。正則表達式

SERIAL是別名BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE。sql

SERIAL DEFAULT VALUE在整數列的定義中是別名NOT NULL AUTO_INCREMENT UNIQUE。數據庫

數字類型 描述
TINYINT 一個很是小的整數
SMALLINT 一個小整數
MEDIUMINT 一箇中等大小的整數
INT 標準整數
BIGINT 一個大整數
DECIMAL 定點數
FLOAT 單精度浮點數
DOUBLE 雙精度浮點數
1.二、MySQL布爾數據類型

MySQL沒有內置 BOOLEAN或BOOL數據類型。爲了表示布爾值,MySQL使用最小的整數類型TINYINT(1)。換句話說,是 BOOLEAN和BOOL的同義詞TINYINT(1).日誌

1.三、MySQL String數據類型

在MySQL中,字符串能夠包含從純文本到二進制數據(如圖像或文件)的任何內容。經過使用LIKE運算符, 正則表達式和全文搜索,能夠基於模式匹配來比較和搜索字符串

字符串類型 描述
CHAR 固定長度的非二進制(字符)字符串
VARCHAR 可變長度的非二進制字符串
BINARY 固定長度的二進制字符串
VARBINARY 可變長度的二進制字符串
TINYBLOB 一個很是小的BLOB(二進制大對象)
BLOB 一個小BLOB
MEDIUMBLOB 一箇中等大小的BLOB
LONGBLOB 一個大BLOB
TINYTEXT 一個很是小的非二進制字符串
TEXT 一個小的非二進制字符串
MEDIUMTEXT 中等大小的非二進制字符串
LONGTEXT 一個很大的非二進制字符串
ENUM 枚舉; 能夠爲每一個列值分配一個枚舉成員
SET 一套; 能夠爲每一個列值分配零個或多個SET成員
MySQL日期和時間數據類型

MySQL提供日期和時間類型以及日期和時間的組合。此外,MySQL支持 時間戳數據類型,用於跟蹤表中一行的更改。若是您只想存儲沒有日期和月份的年份,則可使用YEAR數據類型。日期和時間類型表明的時間值 DATE, TIME, DATETIME, TIMESTAMP,和 YEAR。每一個時間類型都有一系列有效值,以及當您指定MySQL沒法表示的無效值時可使用的「 零 」值。該TIMESTAMP類型具備特殊的自動更新行爲

日期和時間類型 描述
DATE CCYY-MM-DD格式的日期值
TIME hh:mm:ss格式的時間值
DATETIME CCYY-MM-DD hh:mm:ss格式的日期和時間值
TIMESTAMP CCYY-MM-DD hh:mm:ss 格式化的時間戳值
YEAR 年份CCYY或YY 格式
MySQL空間數據類型
空間數據類型 描述
GEOMETRY 任何類型的空間值
POINT 一個點(一對XY座標)
LINESTRING 曲線(一個或多個POINT 值)
POLYGON 一個多邊形
GEOMETRYCOLLECTION 一組GEOMETRY value
MULTILINESTRING 一組LINESTRING value
MULTIPOINT 一組POINT value
MULTIPOLYGON 一組POLYGON Value
JSON數據類型

JSON自5.7.8版本以來,MySQL支持本機數據類型,容許您更有效地存儲和管理JSON文檔。本機JSON數據類型提供JSON文檔和最佳存儲格式的自動驗證

2、MySQL備份和恢復

備份數據庫很是重要,這樣您就能夠恢復數據,並在發生問題時從新啓動並運行,例如系統崩潰,硬件故障或用戶錯誤地刪除數據。在升級MySQL安裝以前,備份也是必不可少的保護措施,它們可用於將MySQL安裝轉移到另外一個系統或設置複製從屬服務器。

2.一、備份和恢復類型
  • 物理與邏輯備份 物理備份由目錄的原始副本和存儲數據庫內容的文件組成。此類備份適用於須要在出現問題時快速恢復的大型重要數據庫。 邏輯備份保存表示爲邏輯數據庫結構(CREATE DATABASE, CREATE TABLE語句)和內容(INSERT語句或分隔文本文件)的信息。此類備份適用於較少許的數據,您能夠在其中編輯數據值或表結構,或在不一樣的計算機體系結構上從新建立數據。
  • 在線與離線備份 在MySQL服務器運行時進行聯機備份,以即可以從服務器獲取數據庫信息。服務器中止時會發生脫機備份。這種區別也能夠描述爲「 熱 」與 「 冷 」備份; 一個「 溫暖 」的備份是一個在服務器保持運行,但鎖定,以防止當你從外部訪問數據庫文件修改數據。
  • 本地與遠程備份 本地備份在運行MySQL服務器的同一主機上執行,而遠程備份則從其餘主機完成。對於某些類型的備份,即便輸出是在服務器上本地寫入的,也能夠從遠程主機啓動備份。
  • 快照備份 某些文件系統實現能夠執行「 快照 」 。它們在給定時間點提供文件系統的邏輯副本,而不須要整個文件系統的物理副本。(例如,實現可能使用寫時複製技術,所以只須要複製快照時間以後修改的部分文件系統。)MySQL自己不提供獲取文件系統快照的功能。它可經過Veritas,LVM或ZFS等第三方解決方案得到。
  • 徹底與增量備份 完整備份包括MySQL服務器在給定時間點管理的全部數據。增量備份包括在給定時間跨度內(從一個時間點到另外一個時間點)對數據所作的更改。MySQL有不一樣的方法來執行完整備份,例如本節前面所述的那些。經過啓用服務器的二進制日誌(服務器用於記錄數據更改),能夠實現增量備份
  • 徹底與時間點恢復 徹底恢復可從完整備份中恢復全部數據。這會將服務器實例還原到備份時的狀態。若是該狀態不夠充分,則能夠在徹底恢復以後恢復自徹底備份以來所作的增量備份,以使服務器處於更新狀態。

增量恢復是恢復在給定時間跨度內所作的更改。這也稱爲時間點恢復,由於它使服務器的狀態達到給定時間。時間點恢復基於二進制日誌,一般在備份文件徹底恢復以後,將備份文件還原到備份時的狀態。而後,在二進制日誌文件中寫入的數據更改將做爲增量恢復應用於重作數據修改,並使服務器達到所需的時間點。

  • 表維護 若是表損壞,數據完整性可能會受到影響。對於 InnoDB表格,這不是典型問題。MyISAM 若是程序檢查表並在發現問題時進行修復
  • 備份調度,壓縮和加密 備份計劃對於自動化備份過程頗有價值。壓縮備份輸出可減小空間需求,輸出加密可提供更好的安全性,防止未經受權訪問備份數據。MySQL自己不提供這些功能。MySQL Enterprise Backup產品能夠壓縮InnoDB備份,而且可使用文件系統實用程序實現備份輸出的壓縮或加密。
2.二、數據庫備份方法
  • 使用MySQL Enterprise Backup進行熱備份
  • 使用mysqldump或mysqlhotcopy進行備份
  • 經過複製表文件進行備份
  • 製做分隔文本文件備份
  • 經過啓用二進制日誌進行增量備份
  • 使用複製從站進行備份
  • 恢復損壞的表
  • 使用文件系統快照進行備份
相關文章
相關標籤/搜索