我即将创建一个由大型数据库组成的 PHP Web 项目。数据库将是 MYSQL,每天将存储超过 30000 条记录。为了优化数据库,我想使用 MEMCACHED 库。我是走正确的路还是可以使用其他替代方法来克服数据优化问题。我只想提供更快的检索和插入。有人可以告诉我应该使用哪种工具以及如何使用,因为数据将以更高的速度逐渐增加?我也应该使用对象关系映射概念吗?
2 回答
为此,您可以使用主从技术。基本上它将首先组合 2 db 用于读取操作和其他用于写入操作。
我支持@halfer,并说他对测试数据的看法是正确的。至少你会知道你不是在尝试优化不需要优化的东西。
除了测试数据之外,您还需要一些测试场景来模拟生产环境的流量模式,这是困难的部分,并且实际上取决于确切的应用程序模式:每秒读取与写入与更新的数量。
鉴于您的数量(30k),您的平均速度约为 3 次插入/秒,我认为即使是最便宜的机器也可以轻松处理。至于读取,一年的数据将不到 1100 万条记录。如果查找速度变慢,您可能希望对数据(mysql 级别或应用程序级别)进行分区,但我怀疑您是否需要使用相对较小的卷。真正的不同之处在于,如果读取次数比插入次数多 1000 倍,那么您可以查看@ram sharma 的建议并设置一个复制的主从模型,其中主节点负责所有写入,而从节点是只读。
如果使用得当,Memcached 是一个强大的野兽,可以将缓慢的 DB 磁盘读取转变为极快的内存读取。如果数据库太慢,我仍然建议您查看它。向任何应用程序添加移动部件也会增加潜在的故障点并增加整体复杂性。
编辑:至于 ORM 的使用,这是您的选择,虽然它可能会给最终用户增加几分之一毫秒的时间,但实际上不会改变有关数据库速度的任何事情。根据我的经验,这通常是值得的。
干杯——