enfil / sharding
Laravel 5.1 分片
Requires
- php: >=5.4.0
- illuminate/support: ~5.0
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(...);