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

逻辑表名=节点



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mycat分表备份功能是指将一个大按照一定的规则划分成多个小,并将这些小存储在不同的后端MySQL服务器上。这样的分表策略可以提高系统的性能和扩展性。Mycat提供了两种常见的分表备份策略:垂直分表和水平分表。 垂直分表是指按照的列进行划分,将一张大的列按照某种规则拆分成多个小。每个小只包含部分列的数据,这样可以减少单个的数据量,提高查询性能。 水平分表是指按照某种规则将一张大的行数据分散到多个小中。每个小存储部分行数据,这样可以降低单个的数据量,提高插入和更新操作的性能。 在Mycat中,可以使用schema.xml配置文件来定义分表规则和备份策略。在schema.xml中,可以定义逻辑库(schema)和其中的(table),通过配置分片规则和备份规则,将逻辑库中的按照规则分配到不同的物理节点上实现分表备份。 总结起来,Mycat分表备份功能可以通过垂直分表和水平分表的策略将大拆分成多个小,并将这些小存储在不同的后端MySQL服务器上,以提高系统的性能和扩展性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [分库分表实战-- Mycat实战](https://blog.csdn.net/lyy629yyt/article/details/123905430)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值