我正在开发一个小应用程序,我正在使用MySQL数据库来保存与应用程序相关的数据。
这让我想知道:
我有很多书(例如100张),每本书里面有数千张照片(平均约30,000张)。 我想在我的数据库中保存有关每张照片的信息,显然,我想知道照片是从哪本书中拍摄的。
我想知道如何设计我的数据库,使其尽可能高效。 我在想两个保存信息的选项:
(显而易见的)
(我不确定的想法)
我读过一些文章,说MySQL是为了保存数百万行而创建的,但是我发现很多人抱怨数据库读取速度慢。
在我的应用程序中,我将处理大约300万行,我应该使用哪种方法来获得更好的性能?也许是我没想到的另一种方式?
谢谢你!答案 0 :(得分:2)
首先考虑未来的管理,书籍的持续时间是否不变? 有没有增加书籍的机会?如果回答是肯定的,那么你将不得不为他们创建新的表并进行管理。
虽然这不是一项大任务,但却难以管理。第一种方法适用于300万(从数据库的角度来看,这不是一个很大的问题。我在单个表中管理了大约10亿行,性能可接受)
通过正确的索引和数据库调整(缓冲池,预取大小,缓存,过程等),您可以获得可接受的性能。
我想在您的案例中建议进行优化,尝试压缩存储在数据库中的图像。有许多无损压缩算法(图像质量保持不变),这将使压缩达到90%(减小90%的尺寸)。这将在您检索数据时提供帮助。