mycat作为数据库中间件也有一定的问题,在使用过程中不免会遇到各种各样的问题,基于此我们将有关的问题都做一个记录以备作FAQ查看。以下问题是针对MongoDB修改使用而提出的,请对号入座。mycat官方问题列表:https://github.com/MyCATApache/Mycat-Server/issues
.EndOfStreamException: 尝试读取超出流末尾的内容。
解决方法:建议将mysql写超时时间设长一点。
注意:我们不要在字段里面包含关键字,有些字段分割如AND、IN、OR等关键字可能导致条件解析时异常。
解决方法:排查WHERE后面的条件,字段里面最好不要夹杂关键字。
加了OR 条件的查询返回结果集为空,or是一个集合条件,来看看MongoDB Shell的操作:
db.getCollection("goods").find({ "$or" : [ { "user" : "jhon"} , { "owner" :"jhon"}]})我们习惯于 a=1 or a=20 这样的SQL语句,必须解析条件or才能实现,不妨自己做做实验。可以参考: http://blog.csdn.net/boonya/article/details/77530263MongoDB客户端测试:
db.getCollection('T_SUBTABLE_DATE_20170801').find({"$or":[{"F_TIME":{"$gte":"2017-08-01 06:00:00","$lte":"2017-08-01 08:00:00"}},{"F_SEX":"female"}]});MongoDB源码里面支持的:
大多数情况:
偶尔出现:
因为不稳定,还是尽量避免使用OR查询。