[讨论下]:数据类型的比较与选择

vinsonshen 2009-08-24 02:52:16
加精
一般情况下,设计表时,考虑到数据能存就可以了,往往在数据类型的细微选择上有所忽略
其实,一个字段的数据类型,对表数据存储所占的空间、索引的组织及其所占的空间,从而由此引起的硬盘IO的数量大小都是有关系的。
所以,请大家谈谈对各种数据类型的认识、相互比较及用法经验...等方面。
...全文
1619 66 打赏 收藏 转发到动态 举报
写回复
用AI写文章
66 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxlwzl 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用讨论下int和Integer的区别吧
int 默认是0 Integer默认是null 这个问题很棘手?大侠们有什么意见?

INTEGER 本身在MYSQL中就是INT的同义词。

INTEGER[(M)] [UNSIGNED] [ZEROFILL]
This type is a synonym for INT.



没有你所说的这种问题。测试如下。
SQL cod……
[/Quote]
大神呀……
petrie 2011-09-14
  • 打赏
  • 举报
回复
酱油...
boy9742 2011-08-26
  • 打赏
  • 举报
回复
读完了,回复楼上的:

1、“date数据库内部处理也是当int型吧”,是的,是转为INT型保存;

2、数据类型的讲究,不仅影响内存,在我看来,更重要的是影响I/0,楼上有朋友说了影响并发,也是对的,

共同学习。
pandaidea 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 vinsonshen 的回复:]

mysql中提供的enum类型,在字段内容类别较少时(假如每个内容的类别有15个字符,表记录有5亿条),也是个很好的选择吗?请具体谈谈好处
[/Quote]

字面意思是枚举,有点想 “ 或 ”的概念,类似if。

手册中的解释是:


枚举类型。只能有一个值的字符串,从值列'value1','value2',...,NULL中或特殊 ''错误值中选出。ENUM列最多可以有65,535个截然不同的值。ENUM值在内部用整数表示。


例如我设置sex字段为 enum('1','0')

那么我insert的时候,不管我是123 还是 3 还是“啊”,如果不符合1或0,那么就插入空。

好像是这样,很少用它,因为数据设计经常在变~呵呵。
pandaidea 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 vinsonshen 的回复:]

引用 2 楼 vinsonshen 的回复:
先提一个:mysql类型 char、varchar 与 text 有什么区别,平时如何的选择?

在数据范围上的区别如下(留意红色部分):

CHAR(M)
固定长度字符串,当保存时在右侧填充空格以达到指定的长度。M表示列长度。M的范围是0到255个字符。
如果想要将某个CHAR的长度设为大于255,执行的CREATE TABLE或AL……
[/Quote]

我听到的版本是:
假如CHAR和VARCHAR多分配10个,如果VARCHAR插入的数据是10时,那么将多占1位,而如果不满足最大(10)的情况下,将占用较低的空间,是这样的。
liuhandax 2009-10-19
  • 打赏
  • 举报
回复
好好学习!
loveguaixiaobai 2009-08-28
  • 打赏
  • 举报
回复
再来顶一下,关注中
kaifaye 2009-08-27
  • 打赏
  • 举报
回复
近来转转加学习~~~
索引在线 2009-08-27
  • 打赏
  • 举报
回复
有此一看,需要学习的地方还真是很多,高手很多啊
feidao110 2009-08-27
  • 打赏
  • 举报
回复
跟着学习学习!!!
NJPaul 2009-08-26
  • 打赏
  • 举报
回复
Marked by NJPaul.
cby666168 2009-08-26
  • 打赏
  • 举报
回复
是啊 表格很方便,但如能在一张数据表上就能够使用分段求和统计和数据归总就更方便了,
hitexam 2009-08-26
  • 打赏
  • 举报
回复
~~~好贴留名
vakano 2009-08-25
  • 打赏
  • 举报
回复
不错
liangguanggui 2009-08-25
  • 打赏
  • 举报
回复
顶!!!!!!!!!!1
denniswwh 2009-08-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 vinsonshen 的回复:]
mysql中提供的enum类型,在字段内容类别较少时(假如每个内容的类别有15个字符,表记录有5亿条),也是个很好的选择吗?请具体谈谈好处

[/Quote]

enum是mysql特有的,我们也很少用,都是自己用tinyint,smallint等,另外建个数据字典表,程序上缓存起来自己需要时做转换。
fenyao 2009-08-25
  • 打赏
  • 举报
回复
关注
24K純帥 2009-08-25
  • 打赏
  • 举报
回复
菜鸟占楼学习。。
denniswwh 2009-08-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 vinsonshen 的回复:]
int与日期类型的选择:如日期2009-08-24,考虑转换为20090824的好处在哪?
[/Quote]

不知道好处在哪里,所以我们一直用date,显示查询比较都很方便,也不需要转来转去很麻烦,也不觉得用int效率会高多少,date数据库内部处理也是当int型吧
加载更多回复(44)

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧