含有blob字段的表查询特别慢,怎么优化SQL?
数据库:mysql 5.0
首先说明,数据表的结构已经不允许调整了。
表中一共十来个字段,其中有一个是longblob类型的,现在发现,如果这个表的longblob类型存储的数据很多的话,则对这个表的查询就特别慢,即使不查询longblob字段也是如此。
尝试过给需要的字段添加索引,但是效果不是很明显,请问,再数据库结构不能调整的情况下,能否通过优化SQL的方式提高查询速度。
Table: recv_file
Field | Type | pri
---------------------------------
id | int | pri
name | varchar |
time | datetime |
data | longblob |
第一句:select id,name,time from recv_file /*这句很慢,如何优化*/
第二句:select id from recv_file /*这句比较快*/
给 name,time 都添加索引(普通索引 index)后,第一句速度有改善,但仍很慢。
如果把 data 字段中的数据都清空的话,速度就很快了。
请问有没有人能给出个好的优化建议。不允许调整表结构。
首先说明,数据表的结构已经不允许调整了。
表中一共十来个字段,其中有一个是longblob类型的,现在发现,如果这个表的longblob类型存储的数据很多的话,则对这个表的查询就特别慢,即使不查询longblob字段也是如此。
尝试过给需要的字段添加索引,但是效果不是很明显,请问,再数据库结构不能调整的情况下,能否通过优化SQL的方式提高查询速度。
Table: recv_file
Field | Type | pri
---------------------------------
id | int | pri
name | varchar |
time | datetime |
data | longblob |
第一句:select id,name,time from recv_file /*这句很慢,如何优化*/
第二句:select id from recv_file /*这句比较快*/
给 name,time 都添加索引(普通索引 index)后,第一句速度有改善,但仍很慢。
如果把 data 字段中的数据都清空的话,速度就很快了。
请问有没有人能给出个好的优化建议。不允许调整表结构。
...全文
相关推荐
sql server字段保存文件,blob操作
在sql server的字段中保存文件,文件大小没有限制。 字段类型2005以上是 varbinary(MAX),2000版本是image.
ORACLE中BLOB字段导入到SQL SERVER中的IMAGE字段
该程序可将ORACLE中BLOB字段导入到SQL SERVER中的IMAGE字段,方便快捷。
BLOB字段处理
BLOB字段处理 插入和获取BLOB字段
判断blob字段是否为空
判断blob字段是否为空sql,非常实用
批量导出ORACLE数据库BLOB字段生成文件
只需要安装oracle client在本地,然后配置好tns,输入连接名,用户名,密码,数据表的名称,文件名数据列名以及blob数据列名,就可以批量导出ORACLE数据库BLOB字段生成图片


