最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mysql优化leftjoin

来源:动视网 责编:小采 时间:2020-11-09 16:48:14
文档

mysql优化leftjoin

mysql优化leftjoin:mysql优化 A(id,name,createtime)B(id,aid,name,createtime)b是a的记录表,a保留一条最新的记录,历史的移动到b中,因此一条a在b中有多条历史记录;需求:当a在b中有记录时,则时间取b中对应记录的最早的创建时间,其他字段取a中的。如果b中无数据,则取
推荐度:
导读mysql优化leftjoin:mysql优化 A(id,name,createtime)B(id,aid,name,createtime)b是a的记录表,a保留一条最新的记录,历史的移动到b中,因此一条a在b中有多条历史记录;需求:当a在b中有记录时,则时间取b中对应记录的最早的创建时间,其他字段取a中的。如果b中无数据,则取


mysql优化

A(id,name,createtime)
B(id,aid,name,createtime)
b是a的记录表,a保留一条最新的记录,历史的移动到b中,因此一条a在b中有多条历史记录;
需求:当a在b中有记录时,则时间取b中对应记录的最早的创建时间,其他字段取a中的。
如果b中无数据,则取a中的全部数据

现在的解决方案是(由于数据敏感,以下为原数据表结构的对呀模型):
-- 如果b中有记录:
SELECT * FROM (
SELECT A.id,A.name,B.createtime
FROM A
INNER JOIN B ON A.id=B.aid
ORDER BY B.createtime) tt
GROUP BY tt.id
UNION
-- 如果b中无记录http://ask.csdn.net/questions?type=reward#
SELECT A.*
FROM A LEFT JOIN B ON A.id=B.aid
WHERE B.id IS NULL

但是这样数据量过10万级别时候特别慢,A,B表都有主键。
求优化

文档

mysql优化leftjoin

mysql优化leftjoin:mysql优化 A(id,name,createtime)B(id,aid,name,createtime)b是a的记录表,a保留一条最新的记录,历史的移动到b中,因此一条a在b中有多条历史记录;需求:当a在b中有记录时,则时间取b中对应记录的最早的创建时间,其他字段取a中的。如果b中无数据,则取
推荐度:
标签: mysql 优化 调优
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top