oracle中读取BLOB大字段比较费时
数据库中数据量上千万级的,需要用到大字段blob 存储了大概4.5K的数据。前提是,不存储文件路径,必须把表中的数据存储到blob字段中。
当每次去查询此字段时,一个简单的sql语句都比较费时,当不查询此字段时,速度还是比较快的。
有什么好办法解决这个问题吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
引用来自#8楼“阿咪”的帖子
引用来自#7楼“曾建凯”的帖子
PHP的PDO在处理BLOB的时候,如果某个BLOB太大,也会发生内存不足的问题。
有两种解决办法:
1、采用原生Oracle连接驱动,不过Oracle默认所有字段都大写,很不爽。
2、限制BLOB的表查询,可采用主信息一个表,BLOB存另外一个表,或者列表查询的时候不查询blob字段。
新建张表关联外键 保存BLOB数据,lizy load的方式 在需要的时候 在读取
正解!
在JDBC4.0中 对 BLOB 和 CLOB 功能做了增强
引用来自#7楼“曾建凯”的帖子
PHP的PDO在处理BLOB的时候,如果某个BLOB太大,也会发生内存不足的问题。
有两种解决办法:
1、采用原生Oracle连接驱动,不过Oracle默认所有字段都大写,很不爽。
2、限制BLOB的表查询,可采用主信息一个表,BLOB存另外一个表,或者列表查询的时候不查询blob字段。
PHP的PDO在处理BLOB的时候,如果某个BLOB太大,也会发生内存不足的问题。
有两种解决办法:
1、采用原生Oracle连接驱动,不过Oracle默认所有字段都大写,很不爽。
2、限制BLOB的表查询,可采用主信息一个表,BLOB存另外一个表,或者列表查询的时候不查询blob字段。
引用来自#4楼“曾建凯”的帖子
他的意思,是select的时候不要select *,先不要查询blob的字段。把数据读出来以后,再通过其他途径来读。
新建张表关联外键 保存BLOB数据,lizy load的方式 在需要的时候 在读取
他的意思,是select的时候不要select *,先不要查询blob的字段。把数据读出来以后,再通过其他途径来读。
引用来自#2楼“joliny”的帖子
查询的时候不查询该字段,利用主键来读取静态或者缓存缓存好的Blob大字段信息。
查询的时候不查询该字段,利用主键来读取静态或者缓存缓存好的Blob大字段信息。