我正在尝试自己的第一个大型数据库项目。 我在服务器1上有一个myisam mysql数据库,其中一个php应用程序消耗了大量的各种数据。 我在服务器2上有mysql myisam,php应用程序选择并显示数据。
我想在服务器2上复制这些数据。
问题:
答案 0 :(得分:26)
根据我的经验,这是我的建议。
您可以为两台服务器使用一种类型的引擎(MyISAM或InnoDB)。 我混合两个引擎,你可能会遇到死锁,交易问题等等......修复它们的时间可能很痛苦。 不久前我用InnoDB遇到了问题 - > MyISAM数据。现在我在所有服务器上都使用了MyISAM。
对于存储媒体(例如图像,视频或文档),您可以创建NFS并安装两个服务器都可访问的/ usermedia /文件夹。 因此,您不必每次都进行rsync。此外,您可以将元数据或媒体信息保存到数据库以供参考,以及将文件保存在磁盘上的位置。 注意:使用blob保存文件可能会很好,具体取决于媒体。如果你有一个大约1 gig的文件可能不是一个好主意,例如保存在数据库上。)
使用缓存系统检索数据(例如memcached)。 例如,如果您请求数据并且需要将其显示给用户,请首先查看缓存。如果它不在缓存中,请查询数据库,将其保存到缓存并显示。 下次请求相同的信息时,您不会从服务器而是从内存中请求它。此解决方案将避免数据库服务器上的大量调用,这将提高性能。
如果您需要其他帮助,请与我们联系。
答案 1 :(得分:23)
我建议InnoDB(用于事务,行锁定而不是表锁定)和redis作为缓存非常快速和高效