博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 如何实现跨裤查询
阅读量:5051 次
发布时间:2019-06-12

本文共 1012 字,大约阅读时间需要 3 分钟。

方案一、字段冗余。也就是说把一部分信息重复存放,比如 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='用户基本信息表-链接表';

  

原文:

转载于:https://www.cnblogs.com/zhangyanhe/p/9001717.html

你可能感兴趣的文章
Powershell使用管道
查看>>
银行卡输入特效 4个加一空格
查看>>
zip unzip linux下使用
查看>>
每日英语:Instant Gratification: China Luxury Buyers Getting More Impulsive
查看>>
Java数据库操作学习
查看>>
使用更改跟踪(ChangeTracking)来实现数据类型变更
查看>>
c++访问mysql数据库
查看>>
JAVA代码查错试题集
查看>>
C#中小数点后保留两位小数,四舍五入的函数及使用方法
查看>>
你的JavaBean是否真的需要实现Serializable
查看>>
CSS3效果:立体字和镂空字
查看>>
规范 : angular 组合 jquery plugin
查看>>
文字无缝向上滚动
查看>>
IE6,谢谢你,goodbye?
查看>>
mongoDB 索引的用法
查看>>
Linux +apache+fastcgi运行c/c++
查看>>
atitit。 hb Hibernate sql 查询使用
查看>>
相关Python分割操作
查看>>
Mac > 编写跨平台桌面应用开发工具,基于 Web 技术
查看>>
《人月神话》3
查看>>