mycat之schema.xml理解

Posted longtengdama

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mycat之schema.xml理解相关的知识,希望对你有一定的参考价值。

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

        <schema name=\\"mycat\\" checkSQLschema=\\"false\\" sqlMaxLimit=\\"100\\">
            <!-- auto sharding by id (long) -->
            <table name=\\"students\\" dataNode=\\"dn1,dn2,dn3,dn4\\" rule=\\"rule1\\" />
            <table name=\\"log_test\\" dataNode=\\"dn1,dn2,dn3,dn4\\" rule=\\"rule2\\" />
            <!-- global table is auto cloned to all defined data nodes ,so can join
                with any table whose sharding node is in the same data node -->
            <!--<table name=\\"company\\" primaryKey=\\"ID\\" type=\\"global\\" dataNode=\\"dn1,dn2,dn3\\" />
            <table name=\\"goods\\" primaryKey=\\"ID\\" type=\\"global\\" dataNode=\\"dn1,dn2\\" />
                -->
            <table name=\\"item_test\\" primaryKey=\\"ID\\" type=\\"global\\" dataNode=\\"dn1,dn2,dn3,dn4\\" />
            <!-- random sharding using mod sharind rule -->
            <!-- <table name=\\"hotnews\\" primaryKey=\\"ID\\" dataNode=\\"dn1,dn2,dn3\\"
                rule=\\"mod-long\\" /> -->
                <!--
            <table name=\\"worker\\" primaryKey=\\"ID\\" dataNode=\\"jdbc_dn1,jdbc_dn2,jdbc_dn3\\" rule=\\"mod-long\\" />
     -->
            <!-- <table name=\\"employee\\" primaryKey=\\"ID\\" dataNode=\\"dn1,dn2\\"
                rule=\\"sharding-by-intfile\\" />
            <table name=\\"customer\\" primaryKey=\\"ID\\" dataNode=\\"dn1,dn2\\"
                rule=\\"sharding-by-intfile\\">
                <childTable name=\\"orders\\" primaryKey=\\"ID\\" joinKey=\\"customer_id\\"
                    parentKey=\\"id\\">
                    <childTable name=\\"order_items\\" joinKey=\\"order_id\\"
                        parentKey=\\"id\\" />
                <ildTable>
                <childTable name=\\"customer_addr\\" primaryKey=\\"ID\\" joinKey=\\"customer_id\\"
                    parentKey=\\"id\\" /> -->
        </schema>

        <!-- <dataNode name=\\"dn\\" dataHost=\\"localhost\\" database=\\"test\\" /> -->
        <dataNode name=\\"dn1\\" dataHost=\\"localhost\\" database=\\"test1\\" />
        <dataNode name=\\"dn2\\" dataHost=\\"localhost\\" database=\\"test2\\" />
        <dataNode name=\\"dn3\\" dataHost=\\"localhost\\" database=\\"test3\\" />
        <dataNode name=\\"dn4\\" dataHost=\\"localhost\\" database=\\"test4\\" />
        <!--
        <dataNode name=\\"jdbc_dn1\\" dataHost=\\"jdbchost\\" database=\\"db1\\" />
        <dataNode name=\\"jdbc_dn2\\" dataHost=\\"jdbchost\\" database=\\"db2\\" />
        <dataNode name=\\"jdbc_dn3\\" dataHost=\\"jdbchost\\" database=\\"db3\\" />
     -->
        <dataHost name=\\"localhost\\" maxCon=\\"100\\" minCon=\\"10\\" balance=\\"1\\"
            writeType=\\"1\\" dbType=\\"mysql\\" dbDriver=\\"native\\">
            <heartbeat>select user()<beat>
            <!-- can have multi write hosts -->
            <writeHost host=\\"localhost\\" url=\\"localhost:3306\\" user=\\"root\\" password=\\"wangwenan\\">
                <!-- can have multi read hosts -->
                <readHost host=\\"hostS1\\" url=\\"localhost:3307\\" user=\\"root\\" password=\\"wangwenan\\"/>
            </writeHost>
            <writeHost host=\\"localhost1\\" url=\\"localhost:3308\\" user=\\"root\\" password=\\"wangwenan\\">
                <!-- can have multi read hosts -->
                <readHost host=\\"hostS11\\" url=\\"localhost:3309\\" user=\\"root\\" password=\\"wangwenan\\"/>
            </writeHost>
        </dataHost>
            <!-- <writeHost host=\\"hostM2\\" url=\\"localhost:3316\\" user=\\"root\\" password=\\"123456\\"/> -->
        <!--
            <dataHost name=\\"jdbchost\\" maxCon=\\"1000\\" minCon=\\"1\\" balance=\\"0\\" writeType=\\"0\\" dbType=\\"mongodb\\" dbDriver=\\"jdbc\\">
            <heartbeat>select user()<beat>
            <writeHost host=\\"hostM\\" url=\\"mongodb://192.168.0.99/test\\" user=\\"admin\\" password=\\"123456\\" ></writeHost>
        </dataHost>    
        -->
         <!--
        <dataHost name=\\"jdbchost\\" maxCon=\\"1000\\" minCon=\\"10\\" balance=\\"0\\"
            dbType=\\"mysql\\" dbDriver=\\"jdbc\\">
            <heartbeat>select user()<beat>
            <writeHost host=\\"hostM1\\" url=\\"jdbc:mysql://localhost:3306\\"
                user=\\"root\\" password=\\"123456\\">
            </writeHost>
        </dataHost>
         -->
    </mycat:schema>

参考:这几篇文章还是写的不错,都是一个系列的

http://blog.itpub.net/29510932/viewspace-1664499/  基础讲解

http://blog.itpub.net/29510932/viewspace-1667814/  配置文件schema.xml讲解

http://blog.itpub.net/29510932/viewspace-1678591/  分表规则

以上是关于mycat之schema.xml理解的主要内容,如果未能解决你的问题,请参考以下文章

mycat的schema.xml

分库分表之MyCat配置初体验

mycat schema.xml 配置文件详解

mycat schema.xml 详解

MyCat 介绍分片规则调优的内容收集

Mycat核心配置