Mysql BLOB在命中“后性能下降”;“限制”;(MyISAM)

Mysql BLOB在命中“后性能下降”;“限制”;(MyISAM),mysql,performance,blob,Mysql,Performance,Blob,我有一个相当小的mysql数据库,其中存储了一些非常小的图像(320x480),直到最近它都表现得非常好,表大小约为1.5Gb,大约有34000条记录。在那一点上 …性能突然下降了100倍 看起来DB已经达到了一个难以承受的极限,它再也无法应对了 有人经历过类似的事情吗 (请不要建议将图像从文件系统的数据库中移出,我们已决定在下一版本的软件中这样做)可能的原因是您的查询没有使用索引。当表很小时,这不是问题,但它越大,MySQL获取数据就越困难 检查列属性_id是否已编制索引。为了加快查询速度,您

我有一个相当小的mysql数据库,其中存储了一些非常小的图像(320x480),直到最近它都表现得非常好,表大小约为1.5Gb,大约有34000条记录。在那一点上

…性能突然下降了100倍

看起来DB已经达到了一个难以承受的极限,它再也无法应对了

有人经历过类似的事情吗


(请不要建议将图像从文件系统的数据库中移出,我们已决定在下一版本的软件中这样做)

可能的原因是您的查询没有使用索引。当表很小时,这不是问题,但它越大,MySQL获取数据就越困难

检查列属性_id是否已编制索引。为了加快查询速度,您可以添加覆盖索引-(
属性\u id
图像

通过向查询中添加
EXPLAIN
,可以查看查询是否使用索引和更有用的信息:

EXPLAIN SELECT image FROM mytable WHERE property_id = 30000

可能的原因是您的查询没有使用索引。当表很小时,这不是问题,但它越大,MySQL获取数据就越困难

检查列属性_id是否已编制索引。为了加快查询速度,您可以添加覆盖索引-(
属性\u id
图像

通过向查询中添加
EXPLAIN
,可以查看查询是否使用索引和更有用的信息:

EXPLAIN SELECT image FROM mytable WHERE property_id = 30000

我很确定数据库已经开始使用磁盘而不是内存来执行操作。这个操作很可能是将数据存储到临时表中。将索引存储在磁盘上,等等。弄清楚它是什么,您的解决方案就会简单得多


性能下降1到100将与内存和磁盘之间的速度差相适应。

我非常确定数据库已经开始使用磁盘而不是内存来执行操作。这个操作很可能是将数据存储到临时表中。将索引存储在磁盘上,等等。弄清楚它是什么,您的解决方案就会简单得多


1到100的性能下降将与内存和磁盘之间的速度差相适应。

不要在BLOB字段上创建索引,这是无用的(MySQL不允许这样做)


你有合适的索引吗?在这种情况下,(property_id)?…

不要在BLOB字段上创建索引,它是无用的(MySQL不允许这样做)


你有合适的索引吗?ie在本例中,(property_id)?…

请提供您正在执行的查询,以及表结构和索引,以便我们提供帮助。忘记添加一个非常奇怪的行为,如果我使用低id访问行(id是自动递增的),则性能非常好,仅在尝试访问“最新”时导致问题的行。(我想说“最新的”30%的表展示了这个问题)表结构是这样的:id int(11)PRI自动增量图像longblob缩略图longblob方向tinyint(4)user_id int(11)property_id int(11)last_change int(11)示例查询:Slow:从mytable中选择图像,其中property_id=30000;快速:从mytable中选择图像,其中属性_id=1;请提供您正在执行的查询,以及表结构和索引,以便我们提供帮助。忘记添加一个非常奇怪的行为,如果我使用低id访问行(id是自动递增的),则性能非常好,只有在尝试访问“最新”行时才会导致问题。(我想说“最新的”30%的表展示了这个问题)表结构是这样的:id int(11)PRI自动增量图像longblob缩略图longblob方向tinyint(4)user_id int(11)property_id int(11)last_change int(11)示例查询:Slow:从mytable中选择图像,其中property_id=30000;快速:从mytable中选择图像,其中属性_id=1;谢谢,将索引添加到property_id只修复了缓慢性。这对我来说真是一个难题:)谢谢,在属性id中添加索引只会修复速度慢的问题。这对我来说真是个难题:)谢谢你,你说得对,这只是索引的问题,我没有在一个blob上放索引,至少我意识到了这一点!:)谢谢,你是对的,这只是索引的问题,我没有把索引放在一个blob上,至少我知道!)