数据类型的选择

1、CHAR与VARCHAR

CHAR与VARCHAR类型类似,都用来存储字符串。

CHAR:固定长度,处理速度较VARCHAR快,但浪费空间。

VARCHAR:可变长度  +1

CHAR(4)和VARCHAR(4)列检索的值并不总相同,CHAR列删除了尾部的空格

2、TEXT与BLOB

保存交大文本时,通常会选择用TEXT或者BLOB

TEXT:只能保存字符数据,如文章或日记

BLOB:二进制,如照片)

删除会造成数据空洞,要使用OPTIMIZE TABLE进行碎片整理。

可以使用合成的(Synthetic)索引来提高大文本字段的查询性能。可以使用模糊查询,但最前不能为%。

在不必要的时候避免检索大型的TEXT或者BLOB。

把TEXT或者BLOB列分离到单独的表中。

3、浮点数和定点数

浮点数:float,double/real:超出精度会四舍五入

定点数:decimal

浮点数相对于定点数的优点是在长度一定的情况下,浮点数能够表示更大的数据范围;
它的缺点是会引起精度问题。

注:(1)、浮点数存在误差问题;

(2)、对货币等精度敏感的数据,应该用定点数表示存储;

(3)、在编程中,如果用到浮点数,要注意误差,并尽量比米娜做浮点数比较;

(4)、要注意浮点数中一些特殊值的处理。

4、日期类型选择

(1)、根据实际选择能够满足应用最小存储的日期类型;

(2)、如果记录年月日时分秒,久远用DATETIME;

(3)、如果记录的日期要让不同时区的用户使用,最好使用TIMESTAMP。

时间: 2024-12-24 15:16:25

数据类型的选择的相关文章

mysql的char数据类型和varchar数据类型的选择

mysql的char数据类型和varchar数据类型的选择 存储引擎对于选择char和varchar的影响: 对于MyISAM存储引擎:最好使用固定长度的数据列代替可变长度的数据列.这样可以使整个表静态化,从而使数据检索更快,用空间换时间 对于InnoDB存储引擎:使用可变长度的数据列,因为InnoDB数据表的存储格式不分固定长度和可变长度,因此使用char不一定比使用 varchar更好,但由于varchar是按照实际的长度存储,比较节省空间,所以对磁盘I/O和数据存储总量比较好 mysql并

SSIS 数据类型的选择

对于SSIS的数据类型,容易遗漏精度的是DateTime,不正确的使用DateTime,time,decimal 等数据类型,可能导致溢出或数据丢失. 1,Variable 和 Parameter的DateTime Variable 和 Parameter的DateTime对应 DT_DBTIMESTAMP (对应SQL Server的Datatime),格式是:yyyy-MM-dd hh:mm:ss XM,例如 “2016-05-19 5:41:32 PM”,只精确到秒. 2,转换组件 由于转

Mysql 数据类型及选择原则

MySQL中的数据类型大的方面来分,可以分为:日期和时间.数值,以及字符串.下面就分开来进行总结. 数据库类型的选择对数据库的性能影响很大 1 . 数据类型会影响存储空间的开销 2 . 数据类型会影响数据查询性能 日期和时间数据类型 MySQL数据类型 含义 date 3字节,日期,格式:2014-09-18 time 3字节,时间,格式:08:42:30 datetime 8字节,日期时间,格式:2014-09-18 08:42:30 timestamp 4字节,自动存储记录修改的时间 yea

Swift(上) 常量, 变量, 数据类型, 循环, 选择结构 简单函数

本篇内容是在XCode的Playground下编写的 那么什么是Playground呢? 提到Playground我们就不得不提Swift这个最近苹果公司力推的语言, Swift是苹果公司在WWDC2014上发布的全新开发语言.从演示视频及随后在appstore上线的标准文档看来,语法内容混合了OC,JS,Python,语法简单,使用方便,并可与OC混合使用. Xcode 6 对 Swift 有着全面深入的支持.你可以利用 100% Swift 代码创建全新的 app,或者将新的 Swift 代

mysql设计表结构数据类型的选择

选择合适的数据类型 在使用MySQL创建数据表的时候会遇到一个问题,如何为字段选择合适的数据类型.比如创建一个员工信息表,每个字段都可以用很多种类型来定义, int,char,float等等. char和varchar char和varchar都是用来存储字符串类型的数据,但是他们保存和检索的方式不一样.char属于固定长度的字符类型,二varchar属于可变成的字符类型 值 char(4) 存储需求 varchar(4) 存储需求 '' '   ' 4个字节 '' 1个字节 'ab' 'ab

关于oracle中数据类型的选择

由于是初学,犯了如下错误: 生成表的主键id时,用当前时间的毫秒值.而在oracle中定义主键id时,用的数据类型是char(32).在mybatis中通过id取数据怎么也取不出来.想了好几天,本来以为是浏览器中取id是带有空值,于是乎就用trim()函数去除空值,但还是没有查出数据,最后才发现是数据库中的数据类型定义成固定长度了,当前时间的毫秒值只有16位,而char(32)就是固定长度的32位,意思也就是说有16位是空格了,所有没法取出数据.动手将char(32)改成varchar2(32)

选择合适的数据类型

DataType 决定了Column能够存储的数据范围和能够进行的操作,例如bit 类型只能存储1,0 和 null,而varchar(10)能够存储最多10个字符,并可以对该column使用字符串函数.数据类型的选择标准既要满足业务和扩展性的需求,又要使行宽到达最小(行宽是一行中所有column占用的Byte).最佳实践:使用与Column Maximum Value 最接近的数据类型. 1,窄行会节省存储空间,减少IO次数 在满足业务需求和扩展性要求的情况下,使用窄的数据类型,使行的宽度达到

小蚂蚁学习mysql性能优化(7)--数据库结构优化--选择合适的数据类型

关于SQL以及索引优化的部分终于学习完了,今天开始进入第二层次的学习,数据库的结构优化,第一部分,选择合适的数据类型. 数据类型的选择,重点在于合适二字. 1.    使用可以存下数据的最小的数据类型 比如,一个时间类型的一个数据,可以使用varchar,可以使用datetime,还可以使用int,如何选择,就看哪一种类型对我们来说是最小的,不言而喻,int类型相对来说是最小的数据类型. 2.    使用简单的数据类型. int类型要比varchar类型在mysql处理上简单的多,用int类型来

Design6:选择合适的数据类型

数据库使用Table来存储海量的数据,细分Table结构,数据最终存储在Table Column中,因此,在设计Table Schema时,必须慎重选择Table Column的Data Type,数据类型不仅决定了Column能够存储的数据范围和能够进行的操作,而且合适的数据类型还能提高查询和修改数据的性能.数据类型的选择标准既要满足业务和扩展性的需求,又要使行宽最小(行宽是一行中所有column占用的Byte).最佳实践:使用与Column最大值最接近的数据类型. 例如,bit 类型只能存储