Muzak复制建议和技术

use*_*831 19 php mysql replication myisam innodb

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

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

问题:

  1. 我应该将服务器1 mysql数据库更改为innodb
  2. 你能将server1 innodb复制到server2 myisam吗?
  3. 我将媒体存储为blob,意图使用缓存卸载实时服务器上的压力.我应该使用文件系统存储和rsync.
  4. 其他有经验的人的一般建议?

Boo*_*eus 26

根据我的经验,这是我的建议.

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

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

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

如果您需要其他帮助,请与我们联系.

  • 你有没有想过VARNISH @ http://en.wikipedia.org/wiki/Varnish_(software)? (6认同)
  • G-WAN + REDIS =非常可靠和快速 (3认同)

Pat*_*ery 23

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