现在客户有2家连锁店,要对各间分店里面的客户表,账户充值和消费表进行共享(之前是顾客在哪一家分店注册,只能在那一家店消费。)1,客户表存有客户信息。2,账户充值和消费表存有顾客的账户充值和每次来Redeem的数据。现在客户要把2间的数据并成。只需要注册一次就可以随意在任何分店消费。我现在的做法是:把一家分店的客户表,账户充值和消费表当做主机来试,主机有固定的IP。
其他分店的客户表,账户充值和消费表用FEDERATED来连接到主机,就可以实现数据共享。
不过问题是在分店查询客户的信息每次要花15秒左右,有没有更好的办法?或者有什么更好的改进办法?

解决方案 »

  1.   

    将2家所有资料进行合并,速度太慢,看看能否在表结构、索引、SQL语句上优化一下 ,如果不能,只能提高硬件配置了
      

  2.   

    硬件都是POS机子,估计不能提高了,要提高的也只是网速。
    我测试了一个客户的固定IP,在我的电脑打开数据很快,就2、3秒。但是早上我测试了一下我自己的固定IP,在另外一个外网连接到我的电脑上,打开数据要将近20秒。
      

  3.   

    连接MYSQL速度如何,是专线?
    PING MYSQL主机 速度如何
      

  4.   

    试试跳过mysql的dns解析starting mysqld with --skip-name-resolve
      

  5.   

    用外网PING我的主机才13MS,测试的时候我的机器当主机。主机里什么设定都没有改。
    在外网的机器中,我删除客户表和账户充值消费表,
    然后重新创建客户表、账户充值和消费表用FEDERATED连接到主机的客户表和账户充值消费表。在外网中用MYSQL查询分析器开客户表就很慢。
      

  6.   

    [mysqld] 
     skip-name-resolve重新启动MYSQ
    试试
      

  7.   

     这个没什么好办法。 你现在每个对账户的查询都必须通过网络进行,这样会比较慢,特别是通过VPN。 另外你的查询语句是什么? 如果单查这个FEDERATED表中的某个记录情况如何? 当FEDERATED表与其它表做JOIN查询的时候,会影响速度。
      

  8.   

    只有查询客户账户余额会对表做JOIN查询,而且这2个表都是FEDERATED的,就是2个表都要从主机中提取数据。象我查询的时候语句是在
    SELECT ID, CustomerNumber, CustomerName, Address, Mobile, EmailAddress FROM Customers
    Where CustomerNumber like '%%';
    或者SELECT * FROM Customers
    2个查询时间都要花15S+
      

  9.   

    还是把数据物理上整合到一起吧,别用FEDERATED引擎,就这几个表,也不麻烦
      

  10.   

    刚才测试了一下,在外网用FEDERATED连接客户IP的一个表,查询Select * From customers;大概花了有20秒。然后在我的电脑上相同的操作,只花了1秒时间。
      

  11.   

    数据合并了再做测试,FEDERATED表影响速度
      

  12.   

    ping xx.xx.xx.xx -l 6400
    看一下结果如何。 如果慢则说明是网速的问题了。
      

  13.   

    用家里的网络去连接客户的数据库,然后在本地用FEDERATED来创建连接去Customers,在查询分析器中用SELECT * FROM Customers才花了不到2秒.估计是我外网的那个网络有点烂.