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进行备份
  • 经过复制表文件进行备份
  • 制做分隔文本文件备份
  • 经过启用二进制日志进行增量备份
  • 使用复制从站进行备份
  • 恢复损坏的表
  • 使用文件系统快照进行备份
相关文章
相关标签/搜索