社区
Sybase
帖子详情
为什么varchar的列不能存储超过255长度的数据(ase 12.5.2)
jianleon
2006-11-16 10:07:13
在linux as3 update4上建了个版本是12.5.2的sybase数据库,但发现表里varchar类型的字段都不能存储超过255字节的数据(用sql advantage看)。
查了一下资料,资料说这个版本的varchar最少能装一两千个字节的数据。后来又在windows上也装了同版本的数据库,在初始安装时把页面大小设成16k,但发现varchar还只能是255!
怎么回事啊,望各位帮帮忙!
...全文
363
5
打赏
收藏
为什么varchar的列不能存储超过255长度的数据(ase 12.5.2)
在linux as3 update4上建了个版本是12.5.2的sybase数据库,但发现表里varchar类型的字段都不能存储超过255字节的数据(用sql advantage看)。 查了一下资料,资料说这个版本的varchar最少能装一两千个字节的数据。后来又在windows上也装了同版本的数据库,在初始安装时把页面大小设成16k,但发现varchar还只能是255! 怎么回事啊,望各位帮帮忙!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
aspirin18
2006-11-17
打赏
举报
回复
12.5的ASE的varchar/char的长度和page size相关
2k 2048
4k 4092
...
jianleon
2006-11-16
打赏
举报
回复
呵呵,我更晕,原来是客户端的问题,不是ase的问题,12.5.2的varchar默认可以到一千多两千
wmyunfei
2006-11-16
打赏
举报
回复
12.5.3就是补丁来的。真晕。
jianleon
2006-11-16
打赏
举报
回复
12.5.3?刚上sybase的网站看了,说需要对应版本下载补丁,我的是12.5.2,怎么下12.5.3呢?
wmyunfei
2006-11-16
打赏
举报
回复
请打补丁到12.5.3
mysql
varchar
能
不能
超过
255
个字节及产生的问题。
项目里突然
varchar
字段设置
255
也不够用了,记得规定
不能
超过
255
,今天查了一下,现总结如下: MySQL要求一个行定义
长度
不能
超过
65535 bytes(所有字符串类型字段包括其字段名称占用空间都计算在内, text、blob等大字段类型除外)。所有如果一个表有很多
varchar
字段的时候,不应该把
varchar
设置的特别大,会影响后面的字段 InnoDB
存储
引擎的表索引的前缀
长度
最长是767字节(bytes)(前缀
长度
适用于mysql5.6及以前,后续版本有变化) 你如果需要建索引,就
为什么mysql的
varchar
字符
长度
会被经常性的设置成
255
—— 不明其理的约定俗成(一)
很多时候我们设置
varchar
(
255
)都习以为常了,甚至我还遇到过有人以为
varchar
不能
设置
超过
255
的人。其实
varchar
没有明确最大
长度
,然后有人说那65535字节(bytes)不是吗? 但是事实上如果你用的utf-8编码的话按理最大可以设置到
varchar
(21845),但是其实一般都会说你超出。其实MySQL要求一个行定义
长度
不能
超过
65535 bytes(所有字符串类型...
mysql
varchar
数据
类型
长度
限制详细与其他字符类型的区别
char 定长 最多
255
字符 末尾的空格会被默认删除 何时选用char类型储存? 1
数据
长度
近似 如手机号 身份证 MD5加密后的值 2 短字符串 相对
varchar
可以节约一个储存
长度
的空间 3 频繁更新的字段 相对于
varchar
不会产生
长度
变化也就不会产生
存储
碎片
varchar
varchar
类型与char类型不同 为变长字符串 在字符
长度
不
超过
255
时 使用一个字节
存储
长度
超过
255
时用两个字节
存储
长度
每行的
varchar
总和不得
超过
65535字节 ...
varchar
类型字段为什么经常定义成
255
也就是说
varchar
(20)和
varchar
(
255
)相应的索引
长度
分别为20*3(utf-8)(+2+1),
255
*3(utf-8)(+2+1)。但实际上,
varchar
(
255
)并不是最优的字符定义
长度
,究竟定成多少,还是要根据实际需求来决定,例如这个字段我就不需要创建索引,定义
超过
255
,是可以的,只能说
255
是常规情况下较少出错的一个值。2、少申请一个字节,记录字符创
长度
,一个8位的tinyint,可以表示的无符号数值的范围是,0-
255
,如果
长度
超过
了
255
,需要在申请个字节。
mysql char
255
_为什么mysql的
varchar
字符
长度
会被经常性的设置成
255
一、
长度
标识说char,
varchar
类型的值,会有一个
长度
标识位来存值
长度
。当定义
varchar
长度
小于等于
255
时,
长度
标识位需要一个字节;当大于
255
时,
长度
标识位需要两个字节也就是说,当我们定义一个
varchar
(
255
)的字段时,其实它真实使用的空间是256(
255
+1)字节;(注意,字段非空,latin1编码)当我们定义一个一个
varchar
(256)字段时,它真实使用的空间是258...
Sybase
2,598
社区成员
25,609
社区内容
发帖
与我相关
我的任务
Sybase
Sybase相关技术讨论区
复制链接
扫一扫
分享
社区描述
Sybase相关技术讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章