enfil/sharding

该包的最新版本(dev-master)没有可用的许可证信息。

Laravel 5.1 分片

dev-master 2022-12-29 17:35 UTC

This package is auto-updated.

Last update: 2024-09-18 10:12:08 UTC


README

################################################

LEGACY!!!

已关闭且不再支持

################################################

安装

下载包

composer require enfil/sharding

添加到提供者

Enfil\Sharding\ShardingServiceProvider::class, 添加到 /config/app.php 文件中的 providers 数组。

添加到别名

'ShardManager' => \Enfil\Sharding\Facades\ShardManager::class, 添加到 /config/app.php 文件中的 alias 列表。

发布配置

php artisan vendor:publish --provider="Enfil\Sharding\ShardingServiceProvider" --tag="config" --force

配置

您可以在配置目录中找到的 sharding.php 配置文件中为所有服务配置分片。

使用方法

首先,您应该设置您的服务

\ShardManager::setService('auth');

添加数据

当您将任何元素插入数据库时,您应该为它生成一个唯一的ID。您可以使用以下方式获取下一个ID:

$id = \ShardManager::getNextId();

然后,您可以使用以下方式选择分片(数据库连接):

$shard = \ShardManager::getShardById($id);

现在您可以将数据插入当前分片

\DB::connection($shard)->table('t')->insert(
    [...]
);

插入后,您应该递增id-generator

\ShardManager::increment();

选择数据

要按ID选择数据,您应该获取一个分片

$shard = \ShardManager::getShardById($id);

然后,您可以从当前分片获取数据

DB::connection($shard)->table('t')->select(...);