From aaf221326e4ca3f342efd276f00e94f371a1685f Mon Sep 17 00:00:00 2001 From: marvin Date: Wed, 19 Jan 2022 11:28:42 +0800 Subject: [PATCH] merge en and zh readmes --- README.md | 2 -- README.zh-CN.md | 55 ------------------------------------------------- 2 files changed, 57 deletions(-) delete mode 100644 README.zh-CN.md diff --git a/README.md b/README.md index cc135d7..6e14f07 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,6 @@ [![Go](https://github.com/longbridgeapp/gorm-sharding/actions/workflows/go.yml/badge.svg)](https://github.com/longbridgeapp/gorm-sharding/actions/workflows/go.yml) [![Go Reference](https://pkg.go.dev/badge/github.com/longbridgeapp/gorm-sharding.svg)](https://pkg.go.dev/github.com/longbridgeapp/gorm-sharding) -English | [简体中文](./README.zh-CN.md) - Gorm Sharding plugin using SQL parser and replace for splits large tables into smaller ones, redirects Query into sharding tables. Give you a high performance database access. Gorm Sharding 是我们基于 Longbridge 的业务场景以及我们的实践经验构建出来的一个高性能的数据库分表中间件。 diff --git a/README.zh-CN.md b/README.zh-CN.md deleted file mode 100644 index 43c6321..0000000 --- a/README.zh-CN.md +++ /dev/null @@ -1,55 +0,0 @@ -# Gorm Sharding - -[English](./README.md) | 简体中文 - -Gorm Sharding 是一个业务污染小,高性能的数据库分表方案。通过 SQL 解析和替换,实现分表逻辑,让查询正确的根据规则执行到分表里面。 - -![场景示例](./images/example-scenario.svg) - -## 特色 - -- 非侵入式设计,业务污染极小。 -- 基于 Gorm Plugin 设计,无中间件服务,基本无额外的性能开销。 -- 多种数据库支持:PostgreSQL 已测试,MySQL 和 SQLite 进行中。 -- 配置简单易懂。 -- 支持自定义主键生成方式。 - -## 安装 - -```bash -go get -u github.com/longbridgeapp/gorm-sharding -``` - -## 用法 - -数据库连接打开后,使用分表插件注册需要拆分的表。 - -`Register` 函数接收一个 map,键是**原始表名**,值是一个 **resolver** ,由可配置的字段组成。 - -具体配置信息见 [Godoc](https://pkg.go.dev/github.com/longbridge/gorm-sharding)。 - -## 用法示例 - -```go -middleware := sharding.Register(map[string]sharding.Resolver{ - "orders": { - ShardingColumn: "user_id", - ShardingAlgorithm: func(value interface{}) (suffix string, err error) { - switch user_id := value.(type) { - case int64: - return fmt.Sprintf("_%02d", user_id % 64), nil - default: - return "", errors.New("invalid user_id") - } - }, - PrimaryKeyGenerate: func(tableIdx int64) int64 { - return keygen.Next(tableIdx) - } - }, -}) -db.Use(middleware) -``` - -## 许可证 - -本项目使用 MIT 许可证。