1. 程式人生 > >mycat分表自增 db實現

mycat分表自增 db實現

CREATE TABLE TEST_SEQUENCE (name VARCHAR(50) NOT NULL,current_value INT NOT

NULL,increment INT NOT NULL DEFAULT 1, PRIMARY KEY(name)) ENGINE=InnoDB;

increment為步長

name為邏輯表名

插入資料

INSERT INTO `TEST_SEQUENCE` (`name`, `current_value`, `increment`)
VALUES
('NIGGERS', 1002, 1);

對應邏輯表NIGGERS

mysql functions:

/* DROP FUNCTION IF EXISTS mycat_seq_nextval; */
/* DELIMITER ;;
CREATE FUNCTION mycat_seq_nextval(seq_name VARCHAR(50)) RETURNS varchar(64) CHARSET
utf8 DETERMINISTIC
BEGIN
UPDATE TEST_SEQUENCE
SET current_value = current_value + increment WHERE name = seq_name; RETURN mycat_seq_currval(seq_name);
END ;;
DELIMITER ;; */

/* DELIMITER ;;
CREATE FUNCTION mycat_seq_setval(seq_name VARCHAR(50),value INTEGER) RETURNS varchar(64)
CHARSET utf8 DETERMINISTIC
BEGIN
UPDATE TEST_SEQUENCE
SET current_value = value
WHERE name = seq_name;
RETURN mycat_seq_currval(seq_name); END ;;
DELIMITER ;; */


/* DELIMITER ;;
CREATE FUNCTION mycat_seq_currval(seq_name VARCHAR(50)) RETURNS varchar(64) CHARSET
utf8 DETERMINISTIC
BEGIN
DECLARE retval VARCHAR(64);
SET retval="-999999999,null";
SELECT concat(CAST(current_value AS CHAR),",",CAST(increment AS CHAR)) INTO retval FROM
TEST_SEQUENCE

WHERE name = seq_name; RETURN retval;
END ;;
DELIMITER ;; */

配置:

server.xml

<property name="sequnceHandlerType">1</property> 2是時間戳方式

scheme.xml

<table name="niggers" autoIncrement="true" primaryKey="id" subTables="niggers$1-3" dataNode="test" rule="mod-long"></table>
<table name="test_sequence" primaryKey="name" dataNode="test"></table>

sequence_db_conf.xml

NIGGERS=test

邏輯表名=節點

相關推薦

mycat db實現

CREATE TABLE TEST_SEQUENCE (name VARCHAR(50) NOT NULL,current_value INT NOT NULL,increment INT NOT NULL DEFAULT 1, PRIMARY KEY(name)) E

Mycat分庫怎麽?Mysql DBA學習

mysql數據庫 數據庫管理員 數據庫架構師 數據庫工程師 北京mysql Mycat分表分庫雖然能解決大表對數據庫系統的壓力,但也有一些不利,因此Mycat分表分庫要先解決的問題是,分不分庫,分哪些庫,什麽規則分,分多少分片。那麽究竟是怎麽分的呢?1、能不分就不分,1000萬以內的表,不

mycat分庫 減輕資料庫壓力

版權宣告:    https://blog.csdn.net/zhydream77/article/details/82148457 目錄 資料庫分片  準備環境 配置過程 主機51和主機52的配置 (這裡只寫一臺資料庫) 配置mycat伺

JAVA 學習(一):16進位制字串實現

JAVA學習系列,並不是從基礎去講java的知識,而是把我在學習或是工作中,一些思想、邏輯總結出來。 原先在工作中,因為測試的需要,經常要往資料庫中批量的插資料。而表的主鍵用的是UUID,是由16進位制字元加“-”組成的,還有裝置的mac地址是由16進位制字元加“:”組成的,那個時候,我剛學ja

資料庫分庫策略的具體實現方案

相關文章: 一、MySQL擴充套件具體的實現方式 隨著業務規模的不斷擴大,需要選擇合適的方案去應對資料規模的增長,以應對逐漸增長的訪問壓力和資料量。 關於資料庫的擴充套件主要包括:業務拆分、主從複製,資料庫分庫與分表。這篇文章主要講

mysql資料庫分庫策略的具體實現方案

相關文章: :http://blog.csdn.net/xlgen157387/article/details/51331244 :http://blog.csdn.net/xlgen157387/article/details/52451613 一、My

MySQL:04---資料完整性(非空、唯一、主鍵、check、預設值、外來鍵約束),級聯設定,

一、資料完整性 1.概念:指資料能正確反映實際情況 2.分類 實體完整性:識別符號或主鍵完整性(主鍵、唯一值約束) 域完整性:限制資料型別、格式、取值範圍(檢查、預設值、外來鍵約束) 引用完整性:輸入或刪除時,不能存在引用不存在的值(外來鍵約束) 自定義完整性

Spring使用JdbcTemplate、JdbcDaoSupport和返回主鍵值

publicclassTeacherDaoImplextendsBaseDaoimplementsTeacherDao{ @Override publicStudent seacherStu(int id){ String sql="select * from student where id=?"; fi

Bash Shell中變數實現方法

Linux Shell中寫迴圈時,常常要用到變數的自增,現在總結一下整型變數自增的方法。 我所知道的,bash中,目前有五種方法: 1. i=`expr $i + 1`; 2. let i+=1; 3. ((i++)); 4. i=$[$i+1]; 5. i=$(( $i

Mongodb 自動增長 id 實現

首先建立一個自動增長id集合 ids>db.ids.save({name:"user", id:0});可以檢視一下是否成功> db.ids.find(); { "_id" : ObjectId("4c637dbd900f00000000686c"), "name" : "user", "id"

mycat分庫的原理是什麼

當初寫這篇文章的初衷只是想提醒自己在用一個開源產品前不僅要了解其提供的功能,更要了解其功能和場景邊界。1.非分片欄位查詢Mycat中的路由結果是通過分片欄位和分片方法來確定的。例如下圖中的一個Mycat分庫方案:根據 tt_waybill 表的 id 欄位來進行分片分片方法為 id 值取 3 的模,根據模值確

mysql查詢一個主鍵的下一個主鍵值:

Mysql的INFORMATION_SCHEMA資料庫包含了一些表和檢視,提供了訪問資料庫元資料的方式。 元資料是關於資料的資料,如資料庫名或表名,列的資料型別,或訪問許可權等。有些時候用於表述該資訊的其他術語包括“資料詞典”和“系統目錄”。 下面對一些重要的資料字典表做一些說明:SCHEMATA表:提供了關

sqlproxy中sort的實現

剛剛完成sqlproxy中大表分表後對查詢語句中的order by的實現;寫個部落格記錄下。 排序演算法的選擇:        在設計之初查看了下mysql中進行order by語句的實現(之前的blog中有),mysql在排序的時候使用的排序演算法主要包括:基數+計數排序,快速排序,files

mycat使用zkID

1、修改server.xml檔案中:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mycat:server SYSTEM "server.dtd"><mycat:server xmlns:myca

資料庫分庫策略的具體實現方案【從MySQL開始】

一、MySQL擴充套件具體的實現方式 隨著業務規模的不斷擴大,需要選擇合適的方案去應對資料規模的增長,以應對逐漸增長的訪問壓力

分庫(3) ---SpringBoot + ShardingSphere 實現讀寫分離

分庫分表(3)---ShardingSphere實現讀寫分離 有關ShardingSphere概念前面寫了兩篇部落格: 1、分庫分表(1) --- 理論 2、 分庫分表(2) --- ShardingSphere(理論) 下面就這個專案做個整體簡單介紹,並在文章最下方附上專案Github地址。 一、專案概

分庫(4) ---SpringBoot + ShardingSphere 實現

分庫分表(4)--- ShardingSphere實現分表 有關分庫分表前面寫了三篇部落格: 1、分庫分表(1) --- 理論 2、分庫分表(2) --- ShardingSphere(理論) 3、分庫分表(3) ---SpringBoot + ShardingSphere實現讀寫分離 這篇部落格通過Sha

分庫(5) ---SpringBoot + ShardingSphere 實現分庫

分庫分表(5)--- ShardingSphere實現分庫分表 有關分庫分表前面寫了四篇部落格: 1、分庫分表(1) --- 理論 2、分庫分表(2) --- ShardingSphere(理論) 3、分庫分表(3) ---SpringBoot + ShardingSphere實現讀寫分離 4、分庫分表(4

分庫(6)--- SpringBoot+ShardingSphere實現+ 讀寫分離

分庫分表(6)--- ShardingSphere實現分表+ 讀寫分離 有關分庫分表前面寫了五篇部落格: 1、分庫分表(1) --- 理論 2、分庫分表(2) --- ShardingSphere(理論) 3、分庫分表(3) ---SpringBoot + ShardingSphere實現讀寫分離 4、分庫分

分庫(7)--- SpringBoot+ShardingSphere實現分庫 + 讀寫分離

分庫分表(7)--- ShardingSphere實現分庫分表+讀寫分離 有關分庫分表前面寫了六篇部落格: 1、分庫分表(1) --- 理論 2、分庫分表(2) --- ShardingSphere(理論) 3、分庫分表(3) ---SpringBoot + ShardingSphere實現讀寫分離 4、分