MySQL数据类型和构建策略
我所说的数字类是十进制和数字,它们是同一类型,严格地不是数字类型,因为它们实际上保存字符串形式的数字。他们珍惜每一位(包括小数点)占一个字节的存储空间,因此这类空间占用多大空间。但它的一个突出的优点是,比特数是固定的,它不会扭曲操作,因此它更适合于如价格和数量方面,它不需要精度高但精度要求高。
小数类,即浮点数类型,根据精度要求的不同,有两种float(单精度)和双(双精度)。其优点是精度,和浮动表明绝对值很小,小到1.17e-38(0…0117,小数点有37个零)小数,双也表明,绝对值小约2.22e-308(0…0222,十进制数307个零后面的小数点。浮点型和双型占4字节和8字节,分别。如果你需要使用一个小数量的字段的精度不高,当然,使用float!但事实上,我们的民用数据究竟有多高的精确度呢到目前为止,我还没有使用这两种类型,我还没有遇到适合使用它们的示例。
最常用的、最精细的,是整数类型。从TINYINT,只占用一个字节的存储空间来bigint,占用8个字节,这是需要考虑的一个类型,占用最小的存储空间不够,在设计database.tinyint、smallint、MEDIUMINT,int、bigint存储空间为1字节,2字节,3字节,4字节和8字节无符号整数,整数类型可以表示的最大分别为255, 65535, 16777215、4294967295和18446744073709551615。如果用来存储用户的年龄(例如,年龄是存储在数据库中是不可取的),用TINYINT就够了;九城自由
日期和时间类型。
日期和时间类型是简单的,不超过几个类型,如日期,时间,日期,时间,和年。它是只敏感的日期,但不需要时间。这是不必要的使用日期日期。单独使用的时间也频繁的时间,但时间是最常用的。没有文章做的日期和时间类型,而不是详细的在这里。
三,字符(字符串)类型。
不要认为字符类型是char!CHAR和varchar的区别是,char是固定长度,只要你定义一个字段是char(10),那么不管你存储的数据达到10字节时,它占用10字节的空间;而varvhar是可变长度的,如果一个字段的值是不固定长度的,我们只知道它不能多于10个字符,它被定义为VARCHAR(10)是最具成本效益的,对VARCHAR类型的实际长度是它的值(+ 1的实际长度)。为什么是1这个字节用于保存实际使用的大小。看到这个+ 1,如果一个领域,它可能是最长的值是10个字符,但在大多数情况下,它是用在10个字符,varchar是不划算的,因为在大多数情况下,实际的空间是11字节,与char(10)也占据多个字节!
例如,存储股票名和代码的表大多存储在四个单词中,即8字节。股票代码在上海是六位数,在深圳是四位数,都是固定长度,股票的名称必须是char(8)。虽然股票代码不是固定的长度,如果你使用varvhar(6),深圳股票代码实际占用5字节,而上海股票代码占用7个字节。考虑到上海的股票数量在深圳超过,然后varchar(6)不好(6字符)。
虽然char或varvhar最大长度可以达到255,我认为焦炭大于20几乎是无用的。很少有固定的长度大于20 bytes.varchar不是一个固定的长度!VARCHAR这是大于100的,几乎是不可能的-这是更好地使用文本,比this.tinytext,最大长度是255,所占用的空间(+ 1;实际长度的文本),65535的最大长度,所占用的空间(+ 2;实际长度的mediumtext),16777215的最大长度,所占用的空间(+ 3;实际长度的单引号字符),4294967295的最大长度,所占用的空间(4的实际长度)。为什么+ 1+ 2+ 3+ 4如果你不知道,你应该玩PP。这些可以用于论坛,新闻,以及保存文章的文本。根据不同的实际情况,从小到大选择不同的类型。
四,枚举和集合类型。
枚举类型(枚举),到字符串定义65535种不同的选择,也必须选择其中之一,存储空间是一个或两个字节,通过枚举值确定数量;设置(设置)类型,最多可以有64个成员,可以选择零限制多个存储空间,是一个八个字节,成员的数目可以通过收集的决定。
例如,在SQLServer,你可以节省一点类型来表示性别(男/女),但不与tintint MySQL有一点吗不,你可以使用枚举(帅哥,Meimei)!只有两个选项,所以只有一个字节是字段的大小,但它可以通过一个字符串帅哥与美眉很方便的直接访问!