关于Merge引擎的一些疑问

flairsky 2009-09-24 05:21:39
打个比方

我merge 30张表,每个表都有索引

我查询 30张表里面的1张表内的内容

对于merge表来说,是会扫描所有的30张表嘛?索引会起作用,但扫描索引的时间是否能忽略?

...全文
91 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2009-09-26
  • 打赏
  • 举报
回复
[Quote]这个当然,A1-A30,如果有索引,会不会很快,因为肯定不在其他区域[/Quote]

每次都会搜索所有的这三十个索引。
iisbsd 2009-09-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 flairsky 的回复:]
这个当然,A1-A30,如果有索引,会不会很快,因为肯定不在其他区域
[/Quote]
会和一个大表的效率一样,因为30个索引还是要搜索一遍,不然怎么能知道不在其它区域呢?
flairsky 2009-09-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wwwwa 的回复:]
用两表大约16万条记录测试了一下,用merge引擎 与 UNION ALL测试了一下,
似乎速度相差不大
select * from mergetable where id='123'
[/Quote]

16w这个测试数据量也不够,唉,我的单表都是千万级的。

我再翻翻资料吧,这贴留这里,看有人能指点一下不
flairsky 2009-09-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 acmain_chm 的回复:]
你可以下载一个MYSQL。然后安装在你本机。

这样就可以搭环境进行测试了。否则别人在自己机器上根据自己的猜测搭出来的东西未必和你的相同。
[/Quote]

我的意思是缺乏系统的比较,单纯查一下这我还是能做到的,我是想看看能不能从底层机制分析下是否有区别,这方面我经验不足
nianzhang747 2009-09-25
  • 打赏
  • 举报
回复
merge引擎是把结果集都转化为了临时表
WWWWA 2009-09-25
  • 打赏
  • 举报
回复
用两表大约16万条记录测试了一下,用merge引擎 与 UNION ALL测试了一下,
似乎速度相差不大
select * from mergetable where id='123'
nianzhang747 2009-09-25
  • 打赏
  • 举报
回复
还没试过merge引擎
flairsky 2009-09-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 iisbsd 的回复:]
打个比方,表A是表A1~A30的merge,如果你做:
select * from A where id = 1;
所有的A1~A30都是会被搜索的。

但是,如果你知道id 1肯定在A1里面,那么可以做:
select * from A1 where id = 1;
会只搜索表A1。
[/Quote]

这个当然,A1-A30,如果有索引,会不会很快,因为肯定不在其他区域
iisbsd 2009-09-25
  • 打赏
  • 举报
回复
打个比方,表A是表A1~A30的merge,如果你做:
select * from A where id = 1;
所有的A1~A30都是会被搜索的。

但是,如果你知道id 1肯定在A1里面,那么可以做:
select * from A1 where id = 1;
会只搜索表A1。
ACMAIN_CHM 2009-09-24
  • 打赏
  • 举报
回复
你可以下载一个MYSQL。然后安装在你本机。

这样就可以搭环境进行测试了。否则别人在自己机器上根据自己的猜测搭出来的东西未必和你的相同。
flairsky 2009-09-24
  • 打赏
  • 举报
回复
也就是说我想知道扫描一张基础表和扫描一张merge表(包括该基础表)的性能差异。

手头无环境,无法测试,只能直接询问了

有经验的告知下,谢了

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧