我有一个相当小的mysql数据库,我存储了一些非常小的图像(320x480),直到最近才表现得很好,表大小约为1.5Gb,大约有34,000条记录。那时......
......突然之间,性能降低了100倍。
看起来数据库已经达到了一个难以达到的极限,它再也无法应对它了。
任何人都有类似的经历吗?
(请不要建议将文件移出文件系统上的数据库,我们已决定使用下一版本的软件进行操作)
答案 0 :(得分:1)
可能的原因是您的查询未使用索引。当表格相当小时,它不是问题,但是它越大,MySQL就越难以获取数据。
检查列property_id是否已编入索引。要加快查询速度,您可以添加覆盖索引 - (property_id
,image
)
您可以通过在查询中添加EXPLAIN
来查看您的查询是否使用了索引和更有用的信息:
EXPLAIN SELECT image FROM mytable WHERE property_id = 30000
答案 1 :(得分:0)
我很确定数据库已经开始利用磁盘而不是内存来进行操作。此操作很可能是将数据存储到临时表。将索引存储在磁盘上等等。找出它是什么,并且您可以更容易地找到解决方案。
性能降低1到100符合内存和磁盘之间的速度差异。
答案 2 :(得分:0)
不要在BLOB字段上创建索引,它是无用的(MySQL不会允许它)。
你有适当的索引吗?即在这种情况下,(property_id)?...