MyCat1.6多表join后进行分组查询,MyCat直接崩溃,以下是使用的方式,敬请大神解答。
mysql> select * from employee as e
-> ;
+----+-----------+-------------+
| id | name | sharding_id |
+----+-----------+-------------+
| 1 | leader us | 10000 |
| 3 | mycat | 10000 |
| 2 | me | 10010 |
| 4 | mydog | 10010 |
+----+-----------+-------------+
4 rows in set (0.15 sec)
mysql> select * from company;
+----+-----------+-------------+
| id | name | sharding_id |
+----+-----------+-------------+
| 1 | leader us | 10000 |
+----+-----------+-------------+
1 row in set (0.01 sec)
mysql> select * from employee as e inner join company as c on e.sharding_id=c.sharding_id;
+----+-----------+-------------+----+-----------+-------------+
| id | name | sharding_id | id | name | sharding_id |
+----+-----------+-------------+----+-----------+-------------+
| 1 | leader us | 10000 | 1 | leader us | 10000 |
| 3 | mycat | 10000 | 1 | leader us | 10000 |
+----+-----------+-------------+----+-----------+-------------+
2 rows in set (0.03 sec)
mysql> select * from employee as e inner join company as c on e.sharding_id=c.sharding_id group by e.sharding_id;
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql>
以下是生成的错误信息:
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 1342 sun.misc.Unsafe.copyMemory(Ljava/lang/Object;JLjava/lang/Object;JJ)V (0 bytes) @ 0x0000000003742a32 [0x00000000037429c0+0x72]
j io.mycat.memory.unsafe.Platform.copyMemory(Ljava/lang/Object;JLjava/lang/Object;JJ)V+34
j io.mycat.memory.unsafe.row.UnsafeRow.getBinary(I)[B+54
j io.mycat.memory.unsafe.row.UnsafeRow.calcPacketSize()I+14
j io.mycat.memory.unsafe.row.UnsafeRow.write(Ljava/nio/ByteBuffer;Lio/mycat/net/FrontendConnection;Z)Ljava/nio/ByteBuffer;+13
j io.mycat.backend.mysql.nio.handler.MultiNodeQueryHandler.outputMergeResult(Lio/mycat/server/ServerConnection;[BLjava/util/Iterator;)V+216
j io.mycat.sqlengine.mpp.DataNodeMergeManager.run()V+229
j java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+95
j java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub