Php Muzak复制建议和技术

Php Muzak复制建议和技术,php,mysql,replication,innodb,myisam,Php,Mysql,Replication,Innodb,Myisam,我正在尝试我自己的第一个大型数据库项目。 我在服务器1上有一个myisam mysql数据库,其中一个php应用程序消耗大量的各种数据。 我在服务器2上安装了mysql myisam,其中包含php应用程序选择和显示数据 我想在服务器2上复制此数据 问题: 我应该将服务器1 mysql数据库更改为innodb吗 能否将server1 innodb复制到server2 myisam 我将媒体存储为blob,目的是使用缓存减轻实时服务器上的压力。我应该使用文件系统存储和rsync吗 其他有经验的人有

我正在尝试我自己的第一个大型数据库项目。 我在服务器1上有一个myisam mysql数据库,其中一个php应用程序消耗大量的各种数据。 我在服务器2上安装了mysql myisam,其中包含php应用程序选择和显示数据

我想在服务器2上复制此数据

问题:

  • 我应该将服务器1 mysql数据库更改为innodb吗
  • 能否将server1 innodb复制到server2 myisam
  • 我将媒体存储为blob,目的是使用缓存减轻实时服务器上的压力。我应该使用文件系统存储和rsync吗
  • 其他有经验的人有什么一般性的建议吗
    根据我的经验,以下是我的建议

  • 两台服务器都可以使用一种引擎(MyISAM或InnoDB)。 如果混合使用这两个引擎,可能会出现死锁、事务问题等。。。而修复它们的时间可能是痛苦的。 不久前,我在InnoDB->MyISAM上遇到了问题。现在我在所有服务器上都使用MyISAM

  • 为了存储媒体(如图像、视频或文档),您可以创建一个NFS并挂载一个类似/usermedia/的文件夹,这两个服务器都可以访问该文件夹。 因此,您不必每次都重新同步。此外,您还可以将元数据或媒体信息保存到数据库中以供参考,并将文件保存在磁盘上。 注意:根据介质的不同,使用blob保存文件可能会更好。如果您有一个大约为1G的文件,那么将其保存在数据库中可能不是一个好主意(例如)

  • 使用缓存系统检索数据(如memcached)。 例如,如果您请求数据并且需要向用户显示数据,请首先查看缓存。如果不在缓存中,则查询数据库,将其保存到缓存并显示。 下次请求相同的信息时,您不会从服务器请求,而是从内存请求。此解决方案将避免对数据库服务器的多次调用,从而提高性能


  • 如果您需要其他帮助,请告诉我。

    我建议使用InnoDB(用于事务、行锁定而非表锁定)和redis作为高速缓存,非常快速高效

    谢谢。媒体文件是图像。3个不同尺寸的相同图像版本。文件大小从10k到80k不等,不太可能超过这个数字。考虑到这一点,它的大小仍将是一个巨大的分贝。那有关系吗?或者mysql对这项工作来说够难了。当然,memcached将在现场使用。我喜欢nfs的想法。但由于这是一个个人项目,我的资金有限。我有一个很好的现场专用服务器。在具有未测量带宽和t1连接的数据中心中。我在办公室里有一台内部服务器,但受到Internet上行连接的限制,该连接大约为512上行20mbs下行。因此,在内部服务器上使用此iconnection nfs连接将降低使用软件的速度-对吗?服务器是否位于同一数据中心?他们能在没有VPN的情况下互相交谈吗?检查此链接。也许您可以开始将图像存储在数据库中,因为它们很小,如果您升级到更大的介质,则可以使用NFS解决方案。好答案您是否考虑过VARNISH@?G-WAN+REDIS=非常可靠和快速