码迷,mamicode.com
首页 > 数据库 > 详细

MySQL 数据类型的简单选择

时间:2015-06-15 11:00:26      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

选择合适的数据类型:
char和varchar:

+---------+------------+
| char(6) | varchar(6) |
+---------+------------+
|         |            |
| str     | str        |
| str123  | str123     |
| str123  | str123     |
+---------+------------+
4 rows in set (0.00 sec)

  


char(6)的存储需求总是6个字节。
varchar(6)存储‘‘需要个1字节。
varchar(6)存储‘str‘需要4个字节。
varchar(6)存储‘str123‘需要7个字节。
varchar(6)存储‘str123no‘需要7个字节。

总结:char(n)所需要的存储字节为n
varchar(n)所需要的字节依赖于插入的字符串m,m+1<=字节<=n+1

text与blob
一般存储少量字符串的时候,我们会选择char或者varchar,而在存储较大文本的时候通常会选择text或者blob。二者之间的主要差别是blob能用来保存二进制数据,比如照片。而text只能用来保存字符数据,比如一片文章。
text又分为text、mediumtext、longtext
blob又分为blob、mediumblob、longblob
主要区别就是存储文本长度不同和存储字节不同。

经常使用blob和text类型会引起性能的降低。删除操作会在表中留下很大的"空洞"(并不会因为数据的减少而清空空间。类似于书架,书拿走了,空间还在占用),可以定期优化表进行碎片整理。optimize table

日期类型的选择
DATE、TIME、DATETIME、TIMESTAMP
几个原则:
如果只需要年,用YEAR类型就可以。
如果需要的时间范围比较大,用DATETIME
如果给不同时区用户使用,则用TIMESTAMP

浮点数和定点数
浮点数一般用户包含有小数位的数值。float、double如果插入数据到过定义的精度有可能被四舍五入。定点数实际上是以字符串形式存放的。所以定点数可以精确的保存数据。如果实际插入的数据大于精度,则会告警。decimal用来表示定点数。
在精度要求比较高的应用中类似货币要使用定点数保存。

MySQL 数据类型的简单选择

标签:

原文地址:http://www.cnblogs.com/xiaoit/p/4576515.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!