为什么mycat select 会查找所有dataNode节点?
按照官方的代码配置
rule.xml
<tableRule name="sharding-by-month">
<rule>
<columns>create_time</columns>
<algorithm>sharding-by-month</algorithm>
</rule>
</tableRule>
<function name="sharding-by-month"
class="org.opencloudb.route.function.PartitionByMonth">
<property name="dateFormat">yyyy-MM-dd</property>
<property name="sBeginDate">2014-01-01</property>
</function>
schema.xml
<schema name="testdb" checkSQLschema="false" sqlMaxLimit="100">
<table name="tb1" primaryKey="create_time" dataNode="dn1,dn2" rule="sharding-by-month" />
</schema>
<dataNode name="dn1" dataHost="vm3307" database="test" />
<dataNode name="dn2" dataHost="vm3309" database="test" />
insert sql
$sql = "INSERT INTO tb1(id,name,create_time) values($id,'$id"."_name"."', '2017-". rand(5,6)."-".rand(1,28)."')";
查看两个库,数据插入正常,5月和六月分别插入到了dn1和dn2。
如图:
问题来了,为什么我查询的时候,会去查找两个dn上的数据???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这表结构create_time是primarykey? 你的数据都不唯一 把primaryKey="create_time"去掉看下 还有写法也不规范limit 20放最后