网站A的数据库里有一个非常简单的表xx,字段:
id:自增
key:值是惟一的字符
value:值是任意字符串网站B每天需要读取这个网站A里的xx表的数据。
我现在的做法是:每当网站A操作xx表时,会同步往远程服务器C里的mysql数据库做同样的操作。这样网站B每天就从远程服务器C读取数据,供查询显示。但是这种方法的性能仍然是个问题,查询时需要连接远程服务器C里的mysql数据库,虽然网站B在查询获取数据后在本地做了缓存,但是我感觉还是不够满意。
最近发现NoSQL应该比较适合存储我的这个xx表,所以如果用NoSQL的话应该怎么操作比较好呢?
我还想到一个方法:当网站A操作xx表时,每插入新的记录或者修改记录,会在某个目录下面专门为每条记录生成对应的一个txt文件,文件名就是key,文件内容是value。这样网站B每次查询数据时,curl网站a目录下有没有对应的txt文件名,如果有,就显示值。这个方法的缺点是会在网站A的某个目录下面生成数量非常多的小文件。或者,有没有什么好的方法将xx表里的数据保存到一个文件中?然后传给网站B呢?然后网站B在本地查询等操作。缺点是每次网站xx表有更新等操作,需要将这个文件同步传到网站B那边去。

解决方案 »

  1.   

    一,mysql主从,这是最简单的引流数据到线下和备份的方法。二,谈谈楼主的想法:
    1,所有数据主动同步给B是要花钱买流量的,想必你没有那么多闲置资金专门买无用的流量。
    2,楼主没有描述机房部署情况,同机房不需要考虑带宽问题,只需要考虑磁盘和请求量。
    楼主最好描述描述机房部署和每个服务器的使用目的细节吧。
      

  2.   


    你说的很对,网站A和网站B不在同机房,隔得太远,而且网站B的机房位置不确定,经常更换
      

  3.   

    那就A,C主从,将XX表数据备份到C机,这是为了不影响线上服务,因为线下查询太多太久会因为锁问题影响线上服务。B按需去C拉取,存磁盘,存缓存。
      

  4.   


    这样很好我现在主要还是想节省成本,然后再用高效的方法达到目的。想把C服务器去掉,A服务器每天每小时将xx表导出成一个文件,然后B服务器在去抓这一个文件,然后再将这个文件里的数据放给出来查询使用。不知道这个方法行不行,我在想如果保存成一个文件传输,用什么格式让B服务器拿到后比较方便查询
      

  5.   

    你这个需求,甚至可以拿个U盘每天拷一份。格式随便,CSV,XML,JSON。
      

  6.   


    JSON格式应该符合平时的习惯,U盘肯定用不上,让两台机器自动操作了