• mysql 如何实现跨裤查询


    方案一、字段冗余。也就是说把一部分信息重复存放,比如 pay_log表里除了userid字段还有user_name字段,等等。但是这只适合加少量字段,如果把注册、登录时间、等级等等都字段都重复一遍,那是显然不科学的。

    方案二、表复制和同步。也就是说把main_db里面的user_info表复制一份到log_db中,然后设置定时任务让这两个表进行同步。这样确实是可以在一个库里,然后可以进行 JOIN 等的复杂语句操作了。但是这两个表的内容是重复的,未免会比较浪费空间。

    方案三、链接表。什么是链接表呢?简单来说,就是在log_db里有一个user_info表,但这个表并没有存储数据,而是直接链接到了 main_db里的user_info表。这样的话,我们可以既无需定期同步,又可以像在同一个库里使用JOIN等操作

    使用 FEDERATED 引擎的代码,FEDERATED默认关闭,需求修改配置开启该引擎

    CREATE TABLE `user_info` (
      `userid` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
      `username` varchar(60) NOT NULL DEFAULT '' COMMENT '帐号',
      `level` int(11) NOT NULL DEFAULT '1' COMMENT '等级',
      `log_dt` timestamp NOT NULL DEFAULT '2016-11-30 00:00:00' COMMENT '最后登录时间',
      `reg_dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
      PRIMARY KEY (`userid`),
      KEY `idx_name` (`username`)
    ) ENGINE=FEDERATED DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT CONNECTION='mysql://batsing:b8a7t4@localhost:3306/main_db/user_info'  COMMENT='用户基本信息表-链接表';
    

      

    原文:http://www.cnblogs.com/batsing/p/federated.html

  • 相关阅读:
    14.会场安排问题(L4)
    图形化调试工具DDD
    sking
    全排列
    DNS
    一种排序
    多边形重心问题
    街区最短路径问题
    Fibonacci数
    python url解析
  • 原文地址:https://www.cnblogs.com/zhangyanhe/p/9001717.html
Copyright © 2020-2023  润新知