关于mySQL速度的简单问题

时间:2011-03-22 18:20:31

标签: mysql database performance

所以我决定要将我的图像名称存储在mysql中。所以我会保存“1”  在我的mysql数据库中。

现在到目前为止,我打算用数字来命名我的iamges,实际上是自动增量。但我应该说出我的形象吗?因为我听说mysql可能相当慢,而且我不想在我的数据库中有一堆图像名称,如果它会让我的数据库运行得慢得多。特别是因为图像名称确实不那么重要。

另外,与手动编号相比,自动增量是否会使我的数据库运行得更快?

编辑:完全不相关的问题。我注意到一些人/网站将他们的图像分成更小的块。喜欢可以轻松成为一个图像的东西,被分成多个图像文件?我不明白,特别是因为亚马逊图像hositng服务费每“获得”。同样在每张照片的亚马逊收费。那么为什么人们会分割图像呢?我有我的假设,但我相信它还有更多。

3 个答案:

答案 0 :(得分:1)

嗯....不确定你的问题的背景,但从广义上讲,MySQL是适度使用的最快的数据库引擎之一(付费的产品,如Oracle和MS SQL Server通常更好用于极端要求)。 将名称存储为字符串并不比将其存储为整数慢得多 - 但它有助于更​​好地了解实际应用程序。 自动增量是自动分配主键的明智选择;即使两个进程在同一时间访问表,它也保证了数字的唯一性。在性能方面,再次 - 我认为你不能衡量差异。

从广义上讲,对于像这样的数据库,我建议构建一个逻辑上干净的实现,创建正确的索引结构,并尽可能地优化它;然后测量表现。如果表现不理想,可以选择其他方案。担心你要问的那种事情有可能优化那些已经闪电般快速的事情,但却牺牲了可维护性,并且经常会引入其他更严重的性能问题...

答案 1 :(得分:0)

从你的问题中不清楚你打算做什么。但我觉得我应该分享我的经验。

我将图像文件名(用户的个人资料图片)存储为用户表格中的字符串,在_profile_pic.jpeg约定中。问题是,由于浏览器缓存了图像,当用户在“更新配置文件”表单中更改了他/她的个人资料图片时,会显示相同的图像。由于图像的文件名相同,浏览器认为它是相同的资源,并从缓存提供,而不是通过HTTP获取。所以我们最终将图像放到另一个表中,自动增量字段是主键,图像文件名重命名为相应的PK。

自动增量不会严格使您的数据库更快,但您仍然应该避免使用

答案 2 :(得分:0)

我正在尝试根据您的澄清回复回答。因为技术上会存储更多的数据,从技术上讲,它会使速度变慢。如果要为可能具有文件名的列编制索引,那么由于占用更多内存,这也可能会导致性能下降。如果或何时成为问题取决于您的服务器有多少内存等等。

在任何一种情况下,我怀疑这不是你现在需要担心的任何事情,而是属于过早优化的范畴。除非我大大低估了您的桌子尺寸和/或流量,否则您将不会发现这方面的差异。

这是第二部分的更新。 这取决于你所看到的确切内容,但我倾向于将其作为少数几件事之一。

1)图像的某些部分可能需要动态更改,它只允许加载/更改需要更改的位而不是整个图像。

2)通过以较小的几个图像块发送大图像,可以使图像在客户端上更快地开始显示,从而给人以更好的响应速度和更快的加载效果。

3)网站来自以psd文件形式提供的模板。这些是可怕的事情,有人在photoshop等中制作网站的图像,然后将其切成一堆小图像,然后将它们单独加载到表格或div中。