为什么mycat select 会查找所有dataNode节点?

发布于 2022-09-05 02:14:19 字数 1466 浏览 20 评论 0

按照官方的代码配置
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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

对你而言 2022-09-12 02:14:19

这表结构create_time是primarykey? 你的数据都不唯一 把primaryKey="create_time"去掉看下 还有写法也不规范limit 20放最后

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文