社区
疑难问题
帖子详情
一张表,有50列,其中至少有30列每列长度在1000字符左右
zhnzzy
2009-09-01 02:17:01
这样建出来的表很显然每行长度大大超过8000字节了,这样是不是效率有很大影响呀?
如果都搞成nvarchar(max)是不是以后检索会更慢?
...全文
273
19
打赏
收藏
一张表,有50列,其中至少有30列每列长度在1000字符左右
这样建出来的表很显然每行长度大大超过8000字节了,这样是不是效率有很大影响呀? 如果都搞成nvarchar(max)是不是以后检索会更慢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Dream_1986
2010-01-02
打赏
举报
回复
关注。。。。
人鱼传说
2010-01-01
打赏
举报
回复
设计成XML试试
newdigitime
2009-12-31
打赏
举报
回复
那就垂直分表嘛.把一个表分成多表.然后联合查询.
虽然全列读取效率差不多,但如果只查询部分字段时显然高效很多.
haitao
2009-12-31
打赏
举报
回复
一条记录8000的限制,
对于varchar(1000)还是有效的:即10个varchar(1000)不能全部都满1000个
对于varchar(max)应该是无效的了吧:即10个varchar(max),每个有2M都不怕
guohao0826
2009-12-31
打赏
举报
回复
首先,如果这样的表肯定是可以建立的。
如果那些1000多长度的字段不是经常查询,那么性能影响不大。
如果只是插入,更新影响也不大。
如果是经常查询这些字段,并且数据大的话,你肯定完蛋。
、具体情况具体分析!特别是数据量有多大?还有你的那些1000多字符的字段平均长度是多少?如果平均长度是1000那么最好用指针代替吧,比如text max 之类的。
liyoubaidu
2009-12-31
打赏
举报
回复
happy new year
zhnzzy
2009-09-02
打赏
举报
回复
怎么没人的.自己顶
htl258_Tony
2009-09-02
打赏
举报
回复
[Quote=引用 9 楼 dawugui 的回复:]
引用楼主 zhnzzy 的回复:
这样建出来的表很显然每行长度大大超过8000字节了,这样是不是效率有很大影响呀?
如果都搞成nvarchar(max)是不是以后检索会更慢?
不是影响效率,是根本设计不了.
一行长度不能超过8060.建议按照关键字段分表吧.
[/Quote]..
zhnzzy
2009-09-02
打赏
举报
回复
[Quote=引用 8 楼 lihan6415151528 的回复:]
必须要设计成这样?
[/Quote]
原则上是这样,因为这是从文本里面截取的一段一段,但都是属于一条记录的
zhnzzy
2009-09-02
打赏
举报
回复
[Quote=引用 9 楼 dawugui 的回复:]
引用楼主 zhnzzy 的回复:
这样建出来的表很显然每行长度大大超过8000字节了,这样是不是效率有很大影响呀?
如果都搞成nvarchar(max)是不是以后检索会更慢?
不是影响效率,是根本设计不了.
一行长度不能超过8060.建议按照关键字段分表吧.
[/Quote]
是存放不了吧?设计还是可以的,如果那些特长的字段都设成varchar(max)呢?效率怎样?
dawugui
2009-09-01
打赏
举报
回复
[Quote=引用楼主 zhnzzy 的回复:]
这样建出来的表很显然每行长度大大超过8000字节了,这样是不是效率有很大影响呀?
如果都搞成nvarchar(max)是不是以后检索会更慢?
[/Quote]
不是影响效率,是根本设计不了.
一行长度不能超过8060.建议按照关键字段分表吧.
lihan6415151528
2009-09-01
打赏
举报
回复
必须要设计成这样?
soft_wsx
2009-09-01
打赏
举报
回复
关注起!
黄_瓜
2009-09-01
打赏
举报
回复
[Quote=引用 5 楼 fredrickhu 的回复:]
长度1000会影响效率 直接用nvarchar(4000)
[/Quote]
怎么个影响法?
--小F--
2009-09-01
打赏
举报
回复
长度1000会影响效率 直接用nvarchar(4000)
黄_瓜
2009-09-01
打赏
举报
回复
影响效率 不会吧,只是占用空间问题吧
字段大小给的合理就行了,数据量大了才影响效率
t240034137
2009-09-01
打赏
举报
回复
关注!
zhnzzy
2009-09-01
打赏
举报
回复
不一定用varchar(max)的,只是说每列都很长影响效率
黄_瓜
2009-09-01
打赏
举报
回复
1000字符就用nvarchar(max)
mysql的
表
最多可设置多少字段?
本文详细解析了MySQL中关于
表
列
数的限制,包括不同版本和存储引擎(如InnoDB和MyISAM)的差异。指出MySQL5.5版本中
表
列
数的硬限制为4096,但实际限制受多种因素影响。InnoDB
表
最多可达
1000
列
,自5.6.9版本起增加到1017
列
。文章提供了针对
列
数超限的解决方案,并强调了参考官方手册的重要性。
列
长度
多于32个
字符
NUM_DISTINCT值错误
本文探讨了Oracle中因
字符
长度
超过32位导致的NUM_DISTINCT值错误问题及解决方案,包括删除直方图、设置
列
统计信息、锁定
表
统计信息等方法,并通过实例演示了这些操作的效果。
varchar
列
的定义与索引创建在MySQL5.6和5.7下的限制
本文主要介绍了MySQL中varchar(M)
列
的定义限制和创建索引的限制。在varchar(M)
列
定义方面,不同
字符
集下M最大值不同,且同一行所有varchar
列
长度
总和有限制,不同版本处理超限制情况不同。创建索引时,不同版本对varchar
列
长度
限制
表
现也不同。
SQL
列
转行/list agg
列
超长处理方法
本文介绍了如何处理SQL中
列
转行操作遇到的
列
长度
过长问题,以及解决ORA-01489错误的方法。通过创建测试
表
,使用LPAD函数填充长
字符
串,然后利用DBMS_UTILITY.GET_HASH_VALUE计算哈希值,最终展示了一种将长
列
转换处理的解决方案。
GreatSQL Hash Join 条件
列
长度
对执行计划的影响
博客探讨了 GreatSQL 中 Hash Join 条件
列
长度
对执行计划的影响。通过不同
长度
字段和 BLOB 类型字段的连接场景举例,发现字段超一定
长度
时执行计划会额外过滤。调查发现优化器有
长度
判断,超长字段存 hash 值,需事后检查防冲突,建议避免用过长字段连接。
疑难问题
22,296
社区成员
121,728
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章