Access数据库的问题,我要存入Access数据库的数据,类型为备注。数据长度大于100000,有什么办法吗

Access数据库的问题,我要存入Access数据库的数据,类型为备注。数据长度大于100000,有什么办法吗,第1张

1Microsoft Access 数据库常规规格(官方数据)

Microsoft Access 数据库 (mdb) 文件大小 2 G 字节。

表的大小 1G 字节

备注字段的字符个数 通过用户界面输入为 65,535,通过程序输入为 1G 字节。

记录集大小 1G 字节

单表记录不宜超过20万,否则速度会有下降的。

2实际设计数据库的时候,主要是从性能上考虑,这样记录过多(一般的说法是五万条记录以上性能就有很大影响,十万条数据就很缓慢了)字段内容过大(本地数据库没有找到这方面的数据,本人也没有这样做过)肯定会影响查询性能的

3一条记录的某字段内容超过十万,也许可以数据的设计上重新考虑,根据特征多分几个字段,这样也许更能适合添加和查询设计的可行性和可 *** 作性

4如果综合考虑实际情况,这是最简方案,可以采用把该内容"分页"的方法存入几个字段,提高查询或存入时的效率,同时避免由于数据量过大在查询或输入 *** 作时容易出现的错误率

a写一个截取字符函数,截取输入内容的(比如每5万字节)一部分存入该记录字段A,这样十万字(这里假如字节为单位)分2个字段A\B存入

b这样读取该内容的时候默认读A字段内容,并分页显示(比如10页),当要读取第十一页的时候,读取B字段内容

5这种方案需要在原来程序基础上添加特有的读取和查询时的分页函数

是的,ACCESS数据库中的数据类型中,文本的最大长度是255。

文本类型是文本或文本和数字的组合,以及不需要计算的数字,例如电话号码。最多为 255 个字符或长度小于 FieldSize 属性的设置值。Microsoft Access 不会为文本字段中未使用的部分保留空间。

解决方法:

当长度超过255时,需改用“Memo”类型,但需要注意备注(Memo)类型的长度不能直接设置。

错误写法:alter table [tableName]  add   columnName memo(4000)

alter table [tableName]  alter column  columnName memo(4000)

正确写法:alter table [tableName]  add   columnName memo

alter table [tableName]  alter column  columnName memo

如果是纯文本格式的话,你把字段属性设成备注型就行了,不知道你说的是读数据库时还是写入数据库时,也不知道你用何种语言工具,以DELPHI为例,如果是读数据库,最简单的就是用ADO控件,直接用FIELD与字段相连,便可以读出来,不用刻意的去写EDIT1TEXT := ADOQUERY1FIELDSVALUES['MEMO'];这样的多余代码了。写入数据库时,如果你的文本框中有换行符,记得转换。

您好,

现代数据库一般都支持CHAR与VARCHAR字符型字段类型,CHAR是用来保存定长字符,存储空间的大小为字段定义的长度,与实际字符长度无关,当输入的字符小于定义长度时最后会补上空格。VARCHAR是用来保留变长字符,在数据库中存储空间的大小是实际的字符长度,不会像CHAR一样补上空格,这样占用的空间更少。

从以上特点来看,VARCHAR比CHAR有明显的优势,因此大部份数据库设计时都应该采用VARCHAR类型。那为什么还需要CHAR类型呢,个人认为有以下几个原因:

1、为了跟以前版本的数据库进行一个兼容,因为很久以前数据库只支持CHAR类型,有些应用的业务逻辑也只是针对CHAR类型设计的,所以数据库软件也就一直保留CHAR类型。

2、CHAR类型是定长的,一些数据库可以在每条记录中不存储字段长度信息,这样可以节省部份空间,也可以方便做一些内存对齐提高性能,但个人认为这带来的性能提升非常微小,至少ORACLE数据库是没有意义的。

3、还有说法是有些数据经常修改,长度可能变化,会引起碎片,采用CHAR就不会产生碎片,这个说法比较多,但我认为既然长度会变化,那用VARCHAR更能节省内存与存储空间来提升性能,只要数据块预留的空间没有问题,采用VARCHAR性能更好。

对于ORACLE数据库,我找不到充足的理由来使用CHAR类型,而且CHAR还会带来讨厌的空格,有些文章说MYSQL的MYISAM存储引擎在和长度固定的情况下CHAR比VARCHAR好,这个没有测试过,不太了解。

由于VARCHAR是变长存储,那么很多人会有疑问,比如STATUS字段定义VARCHAR(10)与VARCHAR(1000)有什么区别,反正是变长的,存储空间都一样,省得以后要加长又要改变字段定义。 下面说一下我的理解:

1、字段长度是数据库一种约束,可以保证进入数据库的数据符合长度要求,定义合理的字段长度可以减少一部份非法数据进入,比如:我们业务中STATUS只有‘NEW’,‘DELETE’,‘CLOSE’3种状态,使用VARCHAR(5)保存,这样可以有效的减少非法数据进入,定义合理的长度也可以让人容易理解字段的用途,试想一下,如果你所有的字符字段长度都是VARCHAR(4000)会是什么样的情况。

2、VARCHAR的字段长度虽然对数据存储没有太大影响,但对特定的数据库还是有一些细微差别,比如MYSQL中定义的长度如果小于255,字段长度用1个字节表示,如果超过255,字段的长度将固定用2个字节表示。如果你的业务数据最大长度只有10,但定义长度为256则每条记录会多浪费了一个字节来存储长度。ORACLE没有这样的问题,它会根据每条记录字段的实际长度动态选择长度标识。

3、字段定义的长度对索引也有较大影响。ORACLE对索引长度还是有一定限制,8i官方文档说明单条记录索引信息的长度不能超过数据块大小的40%,9i中是75%,实际上也差不多,具体可以见jametong的>

ntext类型是不可以用某些字符函数的,nvarchar(max)和ntext有一样的效果并且可以用字符函数,你可以把这行数据的类型改成nvarchar(max)再用len函数就OK了

以上就是关于Access数据库的问题,我要存入Access数据库的数据,类型为备注。数据长度大于100000,有什么办法吗全部的内容,包括:Access数据库的问题,我要存入Access数据库的数据,类型为备注。数据长度大于100000,有什么办法吗、Access数据库中 "文本"的最大长度是255个字符吗、用access数据库的时候,备注(或者摘要)字段太长有时长达800字,如何解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10201433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存