MyCATApache / Mycat-Server

GNU General Public License v2.0
9.51k stars 3.85k forks source link

mycat + jpa @Query 查询返回数据不全, 但是直接连接mycat查询返回数据是全的完整的 #2664

Open xwder opened 3 years ago

xwder commented 3 years ago

问题描述: mycat + jpa @Query 查询返回数据不全, 但是直接连接mycat查询返回数据是全的完整的

SpringBoot-v2.1.7.RELEASE + spring-boot-starter-data-jpa + Druid + mycat1.6.7.4和1.6.7.5.

使用navicat直接连接mycat查询 数据返回是完整的

QQ20201125-235925@2x

但是使用jap @query nativeQuery = true 查询返回的数据有时候只有一条,然后下一次又是完整的数据

QQ20201126-000030@2x

mycat配置文件

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

        <schema name="xwder" checkSQLschema="false" sqlMaxLimit="100" randomDataNode="dn1">
                <table name="book_info" dataNode="dn1"  />
                <table name="app_user" dataNode="dn1"  />
                <table name="app_user_github" dataNode="dn1"  />
                <table name="app_user_qq" dataNode="dn1"  />

                <table name="blog_category" dataNode="dn1"  />
                <table name="blog_tag" dataNode="dn1"  />
                <table name="blog_article" dataNode="dn1"  />
                <table name="blog_article_tag" dataNode="dn1"  />

                <table name="comments_info" dataNode="dn1"  />
                <table name="comments_reply" dataNode="dn1"  />

                <table name="file_upload" dataNode="dn1"  />
                <table name="file_upload_block" dataNode="dn1"  />

                <table name="sys_job" dataNode="dn1"  />
                <table name="sys_job_log" dataNode="dn1"  />
                <table name="qrtz_blob_triggers" dataNode="dn1"  />
                <table name="qrtz_calendars" dataNode="dn1"  />
                <table name="qrtz_cron_triggers" dataNode="dn1"  />
                <table name="qrtz_fired_triggers" dataNode="dn1"  />
                <table name="qrtz_job_details" dataNode="dn1"  />
                <table name="qrtz_locks" dataNode="dn1"  />
                <table name="qrtz_paused_trigger_grps" dataNode="dn1"  />
                <table name="qrtz_scheduler_state" dataNode="dn1"  />
                <table name="qrtz_simple_triggers" dataNode="dn1"  />
                <table name="qrtz_simprop_triggers" dataNode="dn1"  />
                <table name="qrtz_triggers" dataNode="dn1"  />

                <!-- auto sharding by id (long) -->
                <!--splitTableNames 启用<table name 属性使用逗号分割配置多个表,即多个表使用这个配置-->
                <!--fetchStoreNodeByJdbc 启用ER表使用JDBC方式获取DataNode-->
                <table name="book_chapter" primaryKey="id" dataNode="dn1" 
                rule="bookChapter" autoIncrement="true" fetchStoreNodeByJdbc="true"
                subTables="book_chapter_$0-96"  splitTableNames ="true">

                </table>

        </schema>

        <dataNode name="dn1" dataHost="localhost1" database="xwder" />
        <dataHost name="localhost1" maxCon="1000" minCon="50" balance="0"
                          writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
                <heartbeat>select 1</heartbeat>
                <!-- can have multi write hosts -->
                <writeHost host="hostM1" url="jdbc:mysql://127.0.0.1:3306" user="xwder"
                                   password="xxx">
                </writeHost>

        </dataHost>
junwen12221 commented 3 years ago

可以测试一下这个版本 http://dl.mycat.org.cn/1.6.7.6/20201126013625/

xwder commented 3 years ago

可以测试一下这个版本 http://dl.mycat.org.cn/1.6.7.6/20201126013625/ 目前测试情况:可能 我用1.6.7.6版本在小内存服务器测试还是有这个问题,可能是我服务器内存太小的问题 部署在内存足够的服务器 1.6.7. 5 和 6 都暂时没发现这个问题。 因为jvm占用内存过小 会影响jpa解析mycat返回的数据?

junwen12221 commented 3 years ago

看看堆外合拼的属性开启/关闭测试一下 useOffHeapForMerge