sharding-jdbc水平垂直分庫分表環境搭建

star++ 發表於 2020-10-17
  • 使用docker啟動兩個mysql資料庫

    docker run -it -e MYSQL_ROOT_PASSWORD=123456  -p 3306:3306   mysql
    docker run -it -e MYSQL_ROOT_PASSWORD=123456  -p 3307:3306   mysql
    

    在這裡插入圖片描述

  • 水平分表使用表建立
    1.結構如下:
    在這裡插入圖片描述
    2.表sql

    create table t_user_1
    (
    	user_id bigint null, //使用者id
    	user_name varchar(20) null, //使用者名稱稱
    	user_age int null, //使用者年齡
    	user_type int null //使用者型別 1 會員 2 普通使用者
    );
    create table t_user_2
    (
    	user_id bigint null, //使用者id
    	user_name varchar(20) null, //使用者名稱稱
    	user_age int null, //使用者年齡
    	user_type int null //使用者型別 1 會員 2 普通使用者
    );
    
  • 水平分庫使用表建立
    1.結構如下:
    在這裡插入圖片描述
    2.表sql

    create table t_user
    	(
    		user_id bigint null, //使用者id
    		user_name varchar(20) null, //使用者名稱稱
    		user_age int null, //使用者年齡
    		user_type int null //使用者型別 1 會員 2 普通使用者
    	);
    
  • 垂直分表
    不測試,垂直分表我們每天都在用

  • 垂直分庫
    1.表結構
    在這裡插入圖片描述
    2.表sql

    create table t_order
    (
    	order_id int null,
    	user_id int null,
    	order_price int null
    );
    
  • 專案環境
    為了讓大家更瞭解sharding-jdbc的配置,決定先採用spring-jdbc方式訪問,後面使用mybatis,和springBoot方式就知道詳細的前因後果了,方便大家更好理解.

    1.建立一個java專案即可,我們使用簡單的main做實驗,比較容易搭建環境
    2.引入jar包

    <!--單獨使用java程式碼配置方式-->
        <!-- https://mvnrepository.com/artifact/org.apache.shardingsphere/sharding-jdbc-core -->
        <dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-jdbc-core</artifactId>
            <version>4.1.1</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.17.RELEASE</version>
        </dependency>
    
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
    
        <!--druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.21</version>
        </dependency>