mysql中大表在union all的时候性能怎么样?听说如果当union的几个表的数据量很大时,效率会比较低,而且它会写临时文件,如果磁盘空间不够大,就有可能会出错 :Error writing file '/tmp/MYLsivgK' (Errcode: 28)
是真的吗?那要如何处理呢?
谢谢。

解决方案 »

  1.   

    具体需求是什么样子的,按照你 说的,只能用union的话,应该是没有什么其他的方法。
      

  2.   

    我的数据是分散存储在各个不同的盘符里面的(盘符里面的数据库只包含这个盘的信息),在search的时候,我无法判断该用哪个盘符里面的数据库,所以我就将所有的盘符离得数据库都union all(不会有重复记录),这就是我的需求,不知道我有没有说明白~~~
      

  3.   

    没明白你的需求。
    是真的。这个仅从MYSQL方面很难处理。 唯一的方法就是加大你的磁盘。
    另外从你的软件,算法上看看能不能不要用UNION ALL,比如行进行WHERE 然后再UNION 这减少记录的处理总数。
      

  4.   

    大表 单纯用union效率肯定不理想了...
      

  5.   

    MYSQL总是通过创建并填充临时表的方式执行UNION.重要的是始终使用UNION ALL,除非需要服务器消除重复的行。如果忽略了ALL关键字,MYSQL会像临时表添加DISTINCT选项,它会利用所有行来决定数据的唯一性。这种操作开销很大。
      

  6.   

    因为数据不可能存在重复,所以会一直使用all
    根据狼头大哥说的,将条件带到每一个数据中,然后将结果union起来
    速度会快很多