【问题标题】:Muzak replication advice and techniquesMuzak 复制建议和技术
【发布时间】:2011-11-05 05:35:17
【问题描述】:

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

我想在服务器 2 上复制这些数据。

问题:

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

【问题讨论】:

    标签: php mysql replication innodb myisam


    【解决方案1】:

    我会推荐 InnoDB(用于事务、行锁定而不是表锁定)和 redis 作为缓存非常快速和高效

    【讨论】:

      【解决方案2】:

      这是我根据我的经验提出的建议。

      1. 您可以为两个服务器使用一种类型的引擎(MyISAM 或 InnoDB)。 如果你混合使用这两种引擎,你可能会遇到死锁、交易问题等......而且修复它们的时间可能会很痛苦。 不久前我在使用 InnoDB -> MyISAM 时遇到了问题。现在我在所有服务器上都使用了 MyISAM。

      2. 对于存储媒体(例如图像、视频或文档),您可以创建一个 NFS 并安装一个文件夹,例如 /usermedia/ 两个服务器都可以访问。 因此,您不必每次都 rsync。此外,您可以将元数据或媒体信息保存到数据库中以供参考以及文件在磁盘上的保存位置。 注意:使用 blob 保存文件可能会很好,具体取决于媒体。例如,如果您有一个大约 1 gig 的文件可能不适合保存在数据库中)。

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

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

      【讨论】:

      • 谢谢。媒体文件是图像。 3 个不同尺寸的相同图像版本。文件大小从大约 10k 到 80k 不等,而且不可能超过这个。考虑到这一点,它仍然是一个巨大的数据库。这有关系吗?或者 mysql 是否足以胜任这项工作。当然,memcached 将在现场使用。
      • 我喜欢 nfs 的想法。但由于这是一个个人项目,我的资金有限。我有一个很好的现场专用服务器。在具有未计量带宽和 t1 连接的数据中心中。我在办公室有一台内部服务器,但受到 Internet 上游连接的限制,大约 512up 20mbs 下来。因此,使用内部服务器上的这个 iconnection nfs 连接会减慢使用软件的速度 - 对吧?
      • 服务器是否在同一个数据中心?他们可以在没有VPN的情况下互相交谈吗?检查此链接how-to.linuxcareer.com/how-to-configure-nfs-on-linux。也许您可以开始将图像存储在数据库中,因为它们很小,然后如果您升级到更大的媒体,则转移到 NFS 解决方案。
      • 好答案你想过 VARNIH @en.wikipedia.org/wiki/Varnish_(software) 吗?
      • G-WAN + REDIS = 非常可靠和快速
      猜你喜欢
      • 1970-01-01
      • 2011-10-18
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 2011-01-03
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      相关资源
      最近更新 更多